如何从Windows服务启动浏览器

时间:2011-02-02 10:02:26

标签: windows-services

我需要在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有任何想法????

3 个答案:

答案 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?