我無法檢索軟件的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