可以有兩種的方式 第一:通過winecec()函數,但是有取得系統資料庫的鍵值 第二:通過shellexec()他很簡單 就是一句話 ShellExecute(NULL,"open","f:\\11.htm",NULL,NULL,SW_SHOW); 把第一種的代碼
HKEY hkRoot,hSubKey; //定義系統資料庫根關鍵字及子關鍵字 char ValueName[256]; unsigned char DataValue[256]; unsigned long cbValueName=256; unsigned long cbDataValue=256; char ShellChar[256]; //定義指令行 DWORD dwType; //打開系統資料庫根關鍵字 if(RegOpenKey(HKEY_CLASSES_ROOT,NULL,&hkRoot)==ERROR_SUCCESS) { //打開子關鍵字 if(RegOpenKeyExA(hkRoot, "htmlfile\\shell\\open\\command", 0, KEY_ALL_ACCESS, &hSubKey)==ERROR_SUCCESS) { //讀取系統資料庫,擷取預設浏覽器的指令行 RegEnumValueA(hSubKey, 0, ValueName, &cbValueName, NULL, &dwType, DataValue, &cbDataValue); // 調用參數(首頁位址)指派 strcpy(ShellChar,(char *)DataValue); strcat(ShellChar, "www.baidu.com"); // 啟動浏覽器 WinExec(ShellChar,SW_SHOW); } else TRACE("WEB浏覽器打開錯誤!"); } else TRACE("WEB浏覽器打開錯誤!"); //關閉系統資料庫 RegCloseKey(hSubKey); RegCloseKey(hkRoot);
RegOpenKeyEx
RegOpenKeyEx() 函數功能描述:打開一個制定的系統資料庫鍵 函數原型: LONG RegOpenKeyEx( HKEYhKey, //已經打開鍵的句柄 LPCTSTRlpSubKey, // 子鍵的名稱 DWORDulOptions, // 保留 REGSAMsamDesired, // 安全通路标記 PHKEYphkResult //指向将要打開鍵的句柄 ); 參數: hKey [輸入]目前打開或者以下預定義的鍵。 HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS WindowsNT/2000/XP: HKEY_PERFORMANCE_DATA Windows95/98/Me: HKEY_DYN_DATA lpSubKey [輸入]指向一個非中斷字元串包含将要打開鍵的名稱。如果參數設定為NULL或者指向一個空字元串,過程将打開一個新的句柄由hKey參數确定的值。這種情況下,過程不會關閉先前已經打開的句柄。 ulOptions 保留,必須設定為0 samDesired [輸入]對指定鍵希望得到的通路權限的通路标記。這個參數可以使下列值的聯合。 值 |
轉載于:https://blog.51cto.com/whatday/1382525