admin管理员组

文章数量:1529452

文章目录

  • 前言
  • 方式一
    • 说明
    • 代码
  • 方式二
    • 说明
    • 代码

前言

在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"));
    }
}

本文标签: 安装目录浏览器Windowschrome