我无法检索软件的Installdir。我已经尝试过GetValue,甚至OpenSubKey,但每次我得到一个NULL。我使用VS2008,.Net 3.5,64位机器,32位进程设置。使用C获取注册表值#
private string GetInstallPath()
{
string keyValue = string.Empty;
Object key = Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Tool", "Installdir", null);
...
}
虽然在那里有一个有效的字符串,但键仍返回NULL。等价代码在VC++中起作用。请提供您对此问题的见解。我为这个所谓的简单任务做错了什么?我不能使用'Hive',因为它是4.0标准。代码级别的帮助,而不是链接将有所帮助。
VC++相当于
HKEY hkey = NULL;
LSTATUS status = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\My Company\\My Tool\\", 0, KEY_READ, &hkey);
if (status == ERROR_SUCCESS)
{
DWORD type;
char buff[ 100 ];
DWORD numBytes = sizeof(buff);
if (RegQueryValueExA(hkey, REGISTRY_ENTRY, NULL, &type, (LPBYTE) buff, &numBytes) == ERROR_SUCCESS)
{
...
}
添加了VC++等价物作为编辑。 –
@santra_a我发布了工作的c#实际上会经过并找到一个定义,然后将修改UninstallString来修复应用程序。我相信那是你寻找的正确的东西? – Greg