首先要在每個shell子鍵下創建你的程序的程序組子鍵,比如你的程序是MyBrowser
那麼就要創建
RegCreateKeyEx(HKEY_CLASSES_ROOT, _T("http//shell//MyBrowser//command"), NULL,NULL,NULL, KEY_ALL_ACCESS,NULL, &hKey , NULL)
在該子鍵中寫入你的瀏覽器的命令行
比如:TCHAR szKeyValue[MAX_PATH] = "c://program files//MyBrowser//MyBrowser.exe /"%1/"
RegSetValue(hKey, NULL, REG_SZ, szKeyValue, _tcslen(szKeyValue));
然後在HKEY_CLASSES_ROOT/http/shell子鍵下寫入程序組的名稱
TCHAR szShell[MAX_PATH] = "MyBrowser"
if(RegCreateKeyEx(HKEY_CLASSES_ROOT, _T("http//shell"), NULL,NULL,NULL, KEY_ALL_ACCESS,NULL, &hKey , NULL) != ERROR_SUCCESS)
AfxMessageBox(_T("沒有註冊表的訪問權限"));
RegSetValue(hKey, NULL, REG_SZ, szShell, _tcslen(szShell));
這樣默認的http鏈接打開方式就是你的瀏覽器了。
以此類推,還有https,ftp,gopher,file,htmlfile,mhtmlfile等等,只要把上面的http分別替換就可以了。
另外要注意的是,如果當前帳號沒有創建註冊表的權限,那麼無論你的程序如何設置,RegCreateKeyEx也是會返回失敗的,要留意這一點。