ソフトウェアの 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);
...
}
そこに有効な文字列がありますが、キーはNULLを返しています。同等のコードは VC++ で動作します。問題に対する洞察を提供してください。このおそらく簡単なタスクで何が間違っているのでしょうか? 「ハイブ」は 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 )
{
...
}