1 int CSysInfoHelper::RegisterStartFunction(const CString &valueName, 2 const CString &commondLine, 3 HKEY hKey, 4 LPCTSTR lpSubKey) 5 { 6 //写入注册表,开机自启动 7 HKEY hkResult = NULL; 8 9 int result = -1; 10 11 do 12 { 13 DWORD dwDisposition = 0; 14 LONG lRet = RegCreateKeyEx(hKey, lpSubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, 15 NULL, &hkResult, &dwDisposition); 16 if (ERROR_SUCCESS != lRet) 17 { 18 break; 19 } 20 21 lRet = RegSetValueEx(hkResult, valueName, 0, REG_SZ, (BYTE*)(const wchar_t*)commondLine, commondLine.GetLength() * sizeof(wchar_t)); 22 if (ERROR_SUCCESS != lRet) 23 { 24 break; 25 } 26 27 result = 1; 28 29 } while (false); 30 31 if (hkResult != NULL) 32 { 33 //关闭注册表 34 RegCloseKey(hkResult); 35 } 36 37 return result; 38 }
1 int CSysInfoHelper::IsFindKeyInRegedit(const CString &valueName, 2 HKEY hKey, 3 LPCTSTR lpSubKey) 4 { 5 //写入注册表,开机自启动 6 HKEY hkResult = NULL; 7 8 int result = -1; 9 10 do 11 { 12 LONG lRet = RegOpenKeyEx(hKey, lpSubKey, 0, KEY_READ, &hkResult); 13 if (ERROR_SUCCESS != lRet) 14 { 15 break; 16 } 17 18 DWORD dwSize=0; 19 DWORD dwType=0; 20 lRet = RegQueryValueEx(hkResult, valueName, 0, &dwType, NULL, &dwSize); 21 if (ERROR_SUCCESS != lRet) 22 { 23 break; 24 } 25 26 result = 1; 27 28 } while (false); 29 30 if (hkResult != NULL) 31 { 32 //关闭注册表 33 RegCloseKey(hkResult); 34 } 35 36 return result; 37 }