Windows编程—获取Chrome浏览器的安装目录

前言

在Windows平台开发时,有时候需要唤起Chrome浏览器访问指定url, 这时就需要知道Chrome浏览器的安装路径了。笔者这里总结了2种方式,建议使用方式二。

方式一

说明

方式一,我们可以使用 Chrome浏览器 桌面图标的快捷方式找到Chrome的安装路径。博主这里是:C:\Users\Lisi\AppData\Local\Google\Chrome\Application,博主测试了几个Chrome浏览器版本,目前安装程序没有选择安装目录的操作,49版本、77版本、80版本 安装目录都是在这个目录下,当然用户名就不一样!AppData目录是给操作系统给所有应用程序方式放数据用的,这个目录是可以通过系统API(SHGetFolderPathAndSubDir)获取的。如果程序中需要获取Chrome安装路径可通过拼接的方式。

在这里插入图片描述

代码

#include "Utility.h"
#include <Shlobj.h>
#pragma comment (lib, "Shell32.lib")

CString CUtility::GetChromeFolderPath()
{
	const int n = 1024;
	TCHAR lpFolderPath[n] = { 0 };
	SHGetFolderPathAndSubDir(NULL,CSIDL_LOCAL_APPDATA,NULL,SHGFP_TYPE_CURRENT,NULL,lpFolderPath);
	_tcscat(lpFolderPath,_T("\\Google\\Chrome\\Application"));
	return lpFolderPath;
}

使用方式一一般也没问题,博主不确定 Chrome会不会一直安装在这个目录 或者说有的用户做了骚操作,可以把Chrome安装到其他目录,方式一就不好使了。所以笔者推荐使用方式二。

方式二

说明

方式二是从注册表中获取Chrome的安装目录,由于注册表数据是由Chrome安装程序自己写的,这个数据一定的是对的,这样也是最保险的。如下图所示,Chrome安装路径在,计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome 这个项下的InstallLocation键的value值即为安装目录。而且该项下面还有其他的一些安装信息!

在这里插入图片描述

代码

这里笔者读取注册表,使用MFC那一套。

// Chrome浏览器路径
CString chromePath = _T("");
CRegKey reg;
if (reg.Open(HKEY_CURRENT_USER,
             _T("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Google Chrome"),
             KEY_READ) == ERROR_SUCCESS)
{
    TCHAR szValue[512] = { 0 };
    DWORD dwSize = 512;
    if (reg.QueryStringValue(_T("InstallLocation"),szValue,&dwSize) == ERROR_SUCCESS)
    {
        chromePath = szValue;
        chromePath.Append(_T("\\chrome.exe"));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值