首先要在每个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也是会返回失败的,要留意这一点。