我无法检索软件的 Installdir。我已经尝试过 GetValue 甚至 OpenSubKey 但每次我得到一个 NULL。我正在使用 VS2008、.Net 3.5、64 位机器、32 位进程设置。
private string GetInstallPath()
{
string keyValue = string.Empty;
Object key = Registry.GetValue("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Tool", "Installdir", null);
...
}
尽管那里有一个有效的字符串,但 key 正在返回 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 )
{
...
}