window获取系统默认浏览器并打开相应的网址

来源:互联网 发布:js 超链接对象 编辑:程序博客网 时间:2024/05/22 03:08

方法:通过读取注册表找到对应的浏览器地址,解析地址,然后调用系统方法打开对应的网址

//参数说明:key是对应的注册表键,path是后面的路径,keyname是对应的具体的项,默认项的话keyname为""即可//返回值:返回系统注册表中的地址值,为空则返回错误。wstring GetDefaultExplore(HKEY key, wstring strKeyPath, wstring strKeyName){  wstring strKeyVal;  HKEY hKey;  LONG lReturn;  bool bRet = false;  lReturn = ::RegOpenKeyEx(key, strKeyPath.c_str(),0, KEY_READ, &hKey);  if (lReturn == ERROR_SUCCESS)  {    DWORD dwType;    wchar_t szPath[MAX_PATH];    DWORD cbData = sizeof(szPath);    lReturn = RegQueryValueEx(hKey, strKeyName.c_str(), NULL, &dwType, (LPBYTE)szPath, &cbData);    if (lReturn == ERROR_SUCCESS && REG_SZ == dwType)    {      strKeyVal = szPath;    }    RegCloseKey(hKey);  }  return strKeyVal;}

上面方法中用到的RegOpenKeyEx及后面几个方法都是注册表操作相关函数:

参考msdn: https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms724897(v=vs.85).aspx

其中HKEY对应如下几个枚举:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

对得到的地址进行解析获取到对应的.exe

然后调用系统方法即可用浏览器打开相应的网址

例如:

ShellExecute(NULL, L"open", L"chrome.exe", L"baidu.com", NULL, SW_SHOW);






0 0
原创粉丝点击