没有Process.start的开放网站

Ata*_*Ata 3 c# external-process process

如何打开浏览器中的一个网站的网址没有Process.start(...):

System.Diagnostics.Process.Start(@"http://www.google.com");
Run Code Online (Sandbox Code Playgroud)

我无法Process.Start()在Windows服务中使用,我不知道为什么.

Han*_*ant 11

服务在隔离的会话中运行.该会话有自己的桌面,就像登录屏幕一样.然而,用户永远不能看它.这是一种非常基本的安全措施,服务通常使用特权帐户运行.您可以使用Process.Start(),用户将永远无法看到程序的UI.

这不是一个真正的问题,在服务中启动浏览器是没有意义的.

  • @Gabriel:啊,但是对于功能测试,我不建议将服务作为测试主机.... (2认同)

Hug*_*len 11

请参阅问题" Windows服务如何执行GUI应用程序? " 的答案:

使用WTSEnumerateSessions查找正确的桌面,然后使用CreateProcessAsUser在该桌面上启动应用程序

还要注意你不应该这样做:)

如果你要做的只是启动一个URL,那么命令可能是

cmd.exe /c start http://example.com/

如果要禁止简要显示的"命令提示符"窗口,可以将结构wShowWindow字段设置为,或者在.NET中将属性设置为.STARTUPINFOSW_HIDEProcessStartInfo.WindowStyleProcessWindowStyle.Hidden