window获取系统默认浏览器并打开相应的网址
2015-09-07 20:20
183 查看
方法:通过读取注册表找到对应的浏览器地址,解析地址,然后调用系统方法打开对应的网址
上面方法中用到的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);
//参数说明: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);
相关文章推荐
- Processing 教程(7) - 平移、旋转、放缩
- 聊天服务器-客户端
- 高效开发之SASS篇
- 后缀数组 (倍增法) 个人理解
- Find them, Catch them---poj1703(并查集)
- ERROR: HHH000388: Unsuccessful: create table right (right_code varchar(255) not null auto_increment,
- hadoop配置好之后启服务,jps能看到datanode进程,可是后台的datanode日志有如下错误,且50070端口上也是没有活的节点
- 大数据之nutch
- Vbs脚本执行不同版本的Windows OS激活任务(MAK&KMS激活)
- 数据结构与算法(C#版)第二章 C#语言与面向对象技术(上)V1.0
- Fragment实例,数据存储,数据库SQLite
- unique函数
- Hello JSP!——<jsp:plugin>、<jsp:params>、<jsp:fallback>动作元素篇
- LeetCode 4:Median of Two Sorted Arrays
- Qt 头文件、CONFIG
- 十个人过洞
- 【Android应用源码分析】android中HashMap的替代者——SparseArray 源码分析
- StringMethodDemo.java
- 熟悉linux-安装jdk
- 使用函数BBP_INB_DELIVERY_CREATE(VL31n)创建内向交货单时,交货单内的物料字段为空