作者CarsonT (caRt)
看板C_Sharp
标题[问题] VC# 2010 RegistryKey 问题...
时间Fri Apr 27 00:24:51 2012
晚安! > " <
我想透过读取登录档的资料, 来得知Office 2010的安装路径.
下面是存取的部分:
string osppPath = "";
string p1 = @"SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot";
string p2 =
@"SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot";
RegistryKey rk =
Registry.LocalMachine.OpenSubKey(p1);
if (rk != null)
osppPath = rk.GetValue("Path").ToString();
else
{
rk = Registry.LocalMachine.OpenSubKey(p2);
if (rk != null)
osppPath = rk.GetValue("Path").ToString();
}
可是却发现不管怎麽操作, p1, p2位址总是打不开 ~ _____ ~"
rk回传空值
可是透过regedit去看, 机码确实存在, 路径也无误
所以想请问看看这种情形是哪边写法/设定出错了吗 o_O?
ps, 我的程式执行权限(app.manifest)为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
求解 > _ <
update:
我试过用上一层的路径下去列举:
string p = @"SOFTWARE\Microsoft\Office\14.0\Common";
RegistryKey rk = Registry.LocalMachine.OpenSubKey(p);
string[] t = rk.GetSubKeyNames();
foreach (string t1 in t) MessageBox.Show(t1);
发现他只能搜寻到FilePaths, Filter, LanguageResource, ProductVersion
四个目录
而实际上该目录底下远远超过有十来项子路径
请问该怎麽设定RegistryKey的存取权限才能一览无遗呢?
(目前个人想法是存取被限制住了...)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.229.230
※ 编辑: CarsonT 来自: 140.113.229.230 (04/27 10:46)