我有许多程序可以在构建的HTML文件上启动当前的Web浏览器,并且需要在新窗口中打开。注册表中的许多地方都引用了chrome.exe。有很多它的命中或错过编辑每个都有“ - 新窗口”。我将chrome.exe重命名为chrome_original.exe,并用我制作的程序替换了chrome.exe。我的程序所做的是将命令行参数传递给chrome_original.exe,如果尚未存在则添加“--new-window”。读取选项的配置文件。例如,我可以保留调用日志。有时添加“--new-window”是不合适的,可以通过检查日志来确定。
在我的开发机器上,策略运行良好,但在其他机器上却没有。在其他机器镀铬负载,但只是坐在那里车轮旋转。是否测试运行的exe是否为chrome.exe?为什么它适用于我的开发机器?
如果chrome使用新版本更新自己,那么就把它们放回原处,当我重新部署我的exe时,它会处理它。
如果有人知道为什么镀铬只会让车轮旋转并且不加载页面,我需要让它工作。感谢
答案 0 :(得分:0)
要分析问题,我建议您从www.sysinternals.com安装Process Explorer。
应该没有Chrome“坐在车轮上旋转”。 在Process Explorer中找出哪个进程,双击它,然后在打开的窗口的第一个选项卡中看到命令行。
将其与运行它的计算机上的命令行进行比较。
Process Explorer为您提供了更多信息,例如环境变量。我在Firefox的情况下看到环境变量可能非常相关。例如,当您通过程序启动Firefox并且未正确设置工作目录时,它可能会挂起。
答案 1 :(得分:0)
我解决了我的问题。 Chrome也作为后台进程运行,坐在托盘中,使用相同的exe。加载时,exe文件不会保持打开状态。将exe作为一个文件名加载,然后再次加载为不同的文件名,无疑会引起混淆。首先需要卸载已加载的内容。此外,需要使用新的exe文件名更新自动启动注册表项值。
我还没有看到当Chrome使用新版本自动更新时会发生什么。启动实用程序很有可能会被覆盖。需要进行一些调整。
使用chrome的启动程序来拦截调用非常有效,并且在需要时总是有一个新窗口是一个很好的方法。