我需要在launced打开特定URL时创建一个Windows服务。 我所做的是通过添加以下行来覆盖onStart()方法:
protected override void OnStart(string [] args)
{
eventLog1.WriteEntry("Browser must start " + DateTime.Now);
string targetURL = "http://www.mysite.com";
System.Diagnostics.Process.Start(targetURL);
}
然而这件事并不奏效。 :(( 事实是它确实写了日志。这意味着onStart Anybody有任何想法????
答案 0 :(得分:2)
当没有用户登录时,服务通常会启动(当它处于自动启动模式时)。
通常,服务不与用户桌面交互并在单独的会话中工作。如果您需要为每个或部分登录用户执行某些操作,则需要编写单独的代理应用程序,该应用程序将在用户登录时自动启动,并且您的服务将与之通信。然后,代理可以启动浏览器或执行您需要的任何其他操作。
答案 1 :(得分:2)
简单的答案是,如果你使用Vista或以后你不能。这是由于session 0 isolation。引用该页面中链接的文档:
对于更复杂的互动, 开发者应该移动他们的UI代码 进入在用户中运行的代理 会话并处理所有UI 要求。代理进行通信 通过RPC或命名的服务 管道
答案 2 :(得分:1)
Windows服务没有GUI。您可以做的是创建一个与您的服务交互并让它启动Web浏览器的控制器。
此链接不会直接回答您的问题,但会在答案中包含足够的链接,以便您走上正确的道路:How can I run a Windows GUI application on as a service?