如何从Windows服务启动浏览器

18 浏览
0 Comments

如何从Windows服务启动浏览器

我需要创建一个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);
    }

然而,这个东西并不起作用。:((

问题是它确实写了日志,这意味着onStart()方法确实被执行了。有人有什么想法吗???

admin 更改状态以发布 2023年5月21日
0
0 Comments

简单回答是,如果你正在使用Vista或更高版本的操作系统,则无法做到。这是由于session 0 isolation。引用该页面链接的文档中的一段话如下所示:

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

0
0 Comments

服务通常在自动启动模式下启动,当没有用户登录时启动。

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

0