【发布时间】:2020-02-21 19:31:54
【问题描述】:
我有一个用 C# 编写的 Windows 服务,它使用 PuppeteerSharp 启动 Google Chrome 浏览器的实例。请看下面的启动代码:
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 作为非后台进程启动以便我看到它?如果是,怎么做?
【问题讨论】:
-
您在屏幕上看到的是用户桌面。默认情况下,服务无法访问用户桌面,因为它不是用户。(它是在后台运行的服务)。为什么后台服务需要启动浏览器(GUI 应用程序)?如果您需要这样做,您的应用首先不应该是服务。
标签: windows-services background-process