我有一个用C#编写的Windows,它使用PuppeteerSharp启动Google浏览器的一个实例。请参阅下面的启动代码:
string[] chromeArgs = { "--remote-debugging-port=9222" };
Browser browser = await Puppeteer.LaunchAsync(new LaunchOptions()
{
ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
DefaultViewport = null,
Args = chromeArgs,
Headless = false // <-- this is important!
});
尽管我是在无头模式下启动浏览器,但我没有看到Chrome浏览器实际上是在我的机器上启动的。我已经确认浏览器确实会启动,因为我看到它出现在任务管理器中。
我怀疑Chrome浏览器是不可见的,因为它是从作为后台进程的Windows服务启动的,因此Chrome是作为后台进程自动启动的。是否可以将Chrome作为一个非背景进程启动,这样我就可以看到它了吗?如果是,怎么做?
发布于 2020-02-21 20:46:39
我怀疑Chrome浏览器是不可见的,因为它是从作为后台进程的Windows服务启动的,因此Chrome是作为后台进程自动启动的。是否有可能启动Chrome作为一个非背景的进程,这样我就可以看到它?如果是,怎么做?
Win32服务与用户可视应用程序在单独的会话中运行。。除其他原因外,这还防止了称为粉碎攻击的安全漏洞。因此,它不仅在不同的桌面上,而且在不同的桌面上,在不同的Windows站点上,在不同的用户会话中。
虽然存在允许显示来自Win32服务的UI的Win32,但不应该使用黑客。它需要降低整个系统的安全性,特别是降低该服务的安全性,并且可能停止使用任何未来的Windows Update。
对“如何显示来自Win32服务的UI”的正确响应是“您不”。有几种选择:
注意,使用选项(2),您还需要决定如何处理有多个登录用户(例如远程桌面会话)的情况,并确定要在哪个会话上显示UI。
https://stackoverflow.com/questions/60345158
复制相似问题