下面以QQ為例:
#include <iostream>#include <windows.h>using namespace std;#define RTN_ERROR 13int main(void){ #define MY_BUFSIZE 132 // Arbitrary initial value. // Dynamic allocation will be used. HKEY hKey; TCHAR szProductType[MY_BUFSIZE]; DWORD dwBufLen = MY_BUFSIZE; LONG lRet; // 下面是開啟註冊表, 只有開啟後才能做其他動作 lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, // 要開啟的根鍵 TEXT("SOFTWARE\\TENCENT\\QQ2009"), // 要開啟的子子鍵 0, // 這個一定要為0 KEY_QUERY_VALUE, // 指定開啟檔案,此為讀 &hKey); // 用來返回控制代碼 if(lRet != ERROR_SUCCESS) // 判斷是否開啟成功 return 1; // 下面開始查詢 lRet = RegQueryValueEx(hKey, // 開啟註冊表時返回的控制代碼 TEXT("Install"), //要查詢的名稱,qq安裝目錄記錄在這個儲存 NULL, // 一定為NULL或者0 NULL, (LPBYTE)szProductType, // 我們要的東西放在這裡 &dwBufLen); if(lRet != ERROR_SUCCESS) // 判斷是否查詢成功 return 1; RegCloseKey(hKey); cout << (char*)szProductType; strcat(szProductType,"\\Bin\\QQ.EXE");WinExec(szProductType,SW_SHOW);}