64,676
社区成员
发帖
与我相关
我的任务
分享
HINSTANCE CHyperLink::GotoURL(LPCTSTR url, int showcmd)
{
TCHAR key[MAX_PATH + MAX_PATH];
// 调用函数ShellExecute()
HINSTANCE result = ShellExecute(NULL, _T("open"), url, NULL,NULL, showcmd);
// 如果错误,则检查注册表获得.htm文件的注册键值
if ((UINT)result <= HINSTANCE_ERROR) {
if (GetRegKey(HKEY_CLASSES_ROOT, _T(".htm"), key) == ERROR_SUCCESS) {
lstrcat(key, _T("\\shell\\open\\command"));
if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS) {
TCHAR *pos;
pos = _tcsstr(key, _T("\"%1\""));
if (pos == NULL) { // 没有发现
pos = strstr(key, _T("%1")); // 检查%1
if (pos == NULL) // 没有参数
pos = key+lstrlen(key)-1;
else
*pos = '\0'; // 删除参数
}
else
*pos = '\0'; // 删除参数
lstrcat(pos, _T(" "));
lstrcat(pos, url);
result = (HINSTANCE) WinExec(key,showcmd);
}
}
}
return result;
}
if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS) {
TCHAR *pos;
pos = _tcsstr(key, _T("\"%1\""));
if (pos == NULL) { // 没有发现
pos = strstr(key, _T("%1")); // 检查%1
if (pos == NULL) // 没有参数
pos = key+lstrlen(key)-1;
else
*pos = '\0'; // 删除参数
}
else
*pos = '\0'; // 删除参数