- 积分
- 6614
- 明经币
- 个
- 注册时间
- 2006-8-30
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
非常郁闷的事,通过如下方法,在WIN7 64位系统中,竟然无法获取 Registry.LocalMachine.OpenSubKey 下的任何值,请教老大们有其他方法能够获得64位系统中已安装的CAD的所有版本及安装位置么?
RegistryKey allcad = Registry.LocalMachine.OpenSubKey("HKEY_LOCAL_MACHINE\\SOFTWARE\\Autodesk\\AutoCAD", false);//加true读写模式
List<string> CAD_PATHLST = new List<string>();
foreach (string bb in allcad.GetSubKeyNames())
{
string bbz = "Software\\Autodesk\\AutoCAD\\" + bb;
RegistryKey allbb = Registry.LocalMachine.OpenSubKey(bbz, false); //得到所有版本
try
{
foreach (string LAG in allbb.GetSubKeyNames()) //得到各版本下的各语言版
{
string CADPATH = Registry.LocalMachine.OpenSubKey(bbz + "\\" + LAG, false).GetValue("AcadLocation").ToString(); //得到所有版本
if (File.Exists(CADPATH + "\\acad.exe"))
{
CAD_PATHLST.Add(CADPATH);
}
}
}
catch { }
}
allcad = Registry.LocalMachine.OpenSubKey("Software\\Wow6432Node\\Autodesk\\AutoCAD", false);//加true读写模式
foreach (string bb in allcad.GetSubKeyNames())
{
string bbz = "Software\\Wow6432Node\\Autodesk\\AutoCAD\\" + bb;
RegistryKey allbb = Registry.LocalMachine.OpenSubKey(bbz, false); //得到所有版本
try
{
foreach (string LAG in allbb.GetSubKeyNames()) //得到各版本下的各语言版
{
string CADPATH = Registry.LocalMachine.OpenSubKey(bbz + "\\" + LAG, false).GetValue("AcadLocation").ToString(); //得到所有版本
if (File.Exists(CADPATH + "\\acad.exe"))
{
CAD_PATHLST.Add(CADPATH);
}
}
}
catch { }
}
|
|