在Windows Service应用程序中获取已安装的AutoCAD版本

本文关键字:安装 AutoCAD 版本 获取 Windows Service 应用程序 | 更新日期: 2023-09-27 17:51:19

我正在编写一个用于生成CAD图纸的Windows Service,我需要检测系统中安装的是哪个版本。

在Windows Server环境中获取已安装的AutoCAD版本的最佳方法是什么?我知道我可以从注册表中获得这些信息,但是从哪个键呢?所有的AutoCAD版本都有特定的版本吗?

在Windows Service应用程序中获取已安装的AutoCAD版本

可以。你可以在这里找到它:

HKEY_CURRENT_USER'SOFTWARE'Autodesk'AutoCAD

则可以找到值字符串name: CurVer它会显示已安装版本

最好的方法是使用注册表键:

RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE''Autodesk''AutoCAD");
var stringArray = key.GetSubKeyNames();

现在,stringArray是包含所有已安装的autocad版本的字符串数组。

注1:它返回类似于"R19.1"您可以轻松地将其链接到AutoCAD版本,例如"r19.1";为AutoCAD 2021.

注2:别忘了安装Microsoft.Win32。注册表NuGet包,包括Microsoft.Win32.Registry.

也可以检查C:Program Files/Autodesk/下已安装的文件夹,并获取包含"AutoCAD"的文件夹名称。然后拆分字符串以获得年份版本。

就像这样。未检查:

private List<string> GetAutoCadVersions()
{
    List<string> autoCadVersions = new List<string>();
    string cadDirectory = @"C:'Program Files'Autodesk";
    if (Directory.Exists(cadDirectory))
    {
        string[] directories = Directory.GetDirectories(cadDirectory);
        foreach (string directory in directories)
        {
            if (directory.Contains("AutoCAD "))
            {
                string version = directory.Remove(0, 7); // Check this is correct end position, output should be eg. 2022, 2023
                autoCadVersions.Add(version);
            }
        }
        if (autoCadVersions.Count > 0)
        {
            // Do check here if there are no directories.
        }
    }
    return autoCadVersions;
}