如何从Windows服务在应用程序中启动Windows窗体?

问题描述 投票:-1回答:1

我创建了Windows窗体应用程序和Windows服务,我可以从Windows窗体启动服务,但是如果我也尝试启动Windows窗体应用程序,它将无法正常工作。

要启动我的应用程序,我使用System.Process.Start,我在Windows窗体应用程序名称的进程选项卡中的[[任务管理器中看到了它,但没有显示我的窗体。

public partial class testService: ServiceBase { Timer tm = new Timer(); int n = 0; public testService() { InitializeComponent(); } protected override void OnStart(string[] args) { tm.Interval = 10000; tm.Elapsed += Tm_Elapsed; tm.Start(); } private void Tm_Elapsed(object sender, ElapsedEventArgs e) { if (n == 2) { try { ProcessStartInfo info = new ProcessStartInfo(@"pathName\appName.exe"); info.WorkingDirectory = Path.GetDirectoryName(@"pathName"); Process.Start(info); } catch (Exception exception) { Log.writeEventLog(exception.Message); } var service = new ServiceController("testService"); service.Stop(); } n++; } protected override void OnStop() { tm.Stop(); } }
有人知道为什么它不起作用吗?

UPDATE

我需要这样做,因为我必须每隔10分钟用Windows表格询问用户是否处于活动状态。
c# winforms windows-services
1个回答
0
投票
不允许Windows服务与桌面 since Windows Vista. 进行交互,这有很多原因。该复选框是旧事物。

然后您如何从服务启动内容?你不知道这不是服务应该如何工作的。

另一方面,您可以以用户身份运行后台进程以完成相同的操作。

您可以通过注册表,启动文件夹或任务计划程序启动“服务”来执行此操作。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.