我有一个 Chrome 扩展,可以与本机消息传递主机通信以获取一些数据。
问题是,当我通过快捷方式或任务栏中固定的快捷方式启动 Chrome 浏览器时,扩展程序无法连接到主机。我总是收到错误:
无法启动本机消息传递主机。
但是,如果我启动chrome.exe
通过命令提示符,一切正常。
我尝试过但没有成功的事情:
- 任务栏快捷方式没有额外的标志。目标字段有
以下值:
"C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"
- 我尝试使用下面的注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Google\Chrome\NativeMessagingHosts\com.company.extension
- 我尝试使用下面的注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.company.extension
- 我尝试使用下面的注册表项
HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.company.extension
- 尝试启动
chrome.exe
从文件资源管理器以管理员身份。
Update:
我添加了标志--enable-logging --v=1
到启用日志记录的快捷方式,当我启动它时,我在控制台中得到以下输出:
[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set
[11036:11856:0302/113902.882:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set
Update
经调查,chrome.exe
通过进程监视器进行进程,我发现没有COMSPEC
当它通过生成时可用的环境变量explorer
.
还有什么我可以尝试的或者我在这里缺少的东西吗?
正如日志中提到的,Chrome 偶然启动了一个外部进程,因为COMSPEC
, an 环境变量通常指向cmd https://technet.microsoft.com/en-us/library/cc976142.aspx,未设置:
[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set
从以下位置启动 Chrome 的行为有所不同cmd
本身,因为它为自己设置变量(生成的进程)。
这可以通过检查 Chrome 进程来确认流程浏览器 https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx.
一个人可以跑rundll32 sysdm.cpl,EditEnvironmentVariables
以管理员身份(例如从管理命令行)打开环境变量设置。
或者,可以从“控制面板”>“系统和安全”>“系统”>“高级系统设置”>“高级”>“环境变量...”导航到该对话框。
ComSpec
通常在系统变量中设置为
C:\WINDOWS\system32\cmd.exe
根据系统安装的需要进行调整。要应用此设置,您需要注销并重新登录,或者最好重新启动系统。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)