【问题标题】:How can I start a browser from a windows service如何从 Windows 服务启动浏览器
【发布时间】:2011-06-19 20:52:13
【问题描述】:

我需要创建一个 Windows 服务,该服务在启动时会打开一个特定的 URL。 我所做的是通过添加以下行来覆盖 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);
    }

然而这东西行不通。 :(( 事情是它确实写了日志。than 意味着 onStart 有人有什么想法吗????

【问题讨论】:

    标签: windows-services


    【解决方案1】:

    Windows 服务没有 GUI。您可以做的是创建一个与您的服务交互的控制器并让它启动一个网络浏览器。

    此链接不直接回答您的问题,但在答案中包含足够多的链接,让您走上正确的道路:How can I run a Windows GUI application on as a service?

    【讨论】:

      【解决方案2】:

      服务通常在没有用户登录时启动(当它处于自动启动模式时)。

      一般来说,服务不与用户桌面交互,而是在单独的会话中工作。如果您需要为每个或部分登录用户执行某些操作,则需要编写一个单独的代理应用程序,该应用程序将在用户登录时自动启动,并且您的服务将与之通信。然后代理可以启动浏览器或执行您需要的任何其他操作。

      【讨论】:

        【解决方案3】:

        简单的答案是,如果您使用的是 Vista 或更高版本,则不能。这是由于session 0 isolation。引用该页面中链接的文档:

        对于更复杂的交互, 开发人员应该移动他们的 UI 代码 进入在用户的代理中运行的代理 会话并处理所有 UI 要求。代理沟通 通过 RPC 或命名的服务 管道。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-24
          • 2015-09-09
          • 2012-04-17
          • 1970-01-01
          • 2015-12-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多