gpt4 book ai didi

c# - 如何在 C# 中编写 Windows 服务来为用户启动应用程序?

转载 作者:行者123 更新时间:2023-11-30 13:29:08 26 4
gpt4 key购买 nike

是否可以启动一个程序,以便具有 Windows 服务的用户可以使用它?我一直在使用 C# 中的 Process.Start()。我可以获得服务来启动出现在进程下的任务管理器列表中的某种进程。但是,该程序从未出现在屏幕上。默认情况下,它在用户名“SYSTEM”下运行。我已调整服务管理器中的“登录”选项以匹配登录计算机的人,但这也不会导致出现窗口。

我觉得我要么缺少一个简单的设置,要么需要为此采取不同的方向。下面是我用来启动 Firefox 作为测试应用程序的代码。

    private void startRunDap()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "Firefox";
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.UseShellExecute = true;
Process.Start(startInfo);

//Process.Start("Firefox");

}

最佳答案

在 Vista 和 Win7 上,服务在其自己的 session 中使用私有(private)桌面运行。您将启动 Firefox,但它永远不会显示。帐户名实际上是怎么来的,LocalSystem 是一个高特权帐户,一个巨大的安全漏洞。

您将需要用户 session 中的“代理”来启动该过程。一个不可见的程序,您使用运行键或启动文件夹启动,它通过命名管道或套接字与服务对话。可以启动程序。

关于c# - 如何在 C# 中编写 Windows 服务来为用户启动应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com