在Windows Service应用程序中获取已安装的AutoCAD版本
本文关键字:安装 AutoCAD 版本 获取 Windows Service 应用程序 | 更新日期: 2023-09-27 17:51:19
我正在编写一个用于生成CAD图纸的Windows Service,我需要检测系统中安装的是哪个版本。
在Windows Server环境中获取已安装的AutoCAD版本的最佳方法是什么?我知道我可以从注册表中获得这些信息,但是从哪个键呢?所有的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;
}