向另一个用户或所有登录用户显示C#表单

时间:2010-08-10 15:32:37

标签: c# winforms scheduled-tasks splash-screen

我有一个C#控制台应用程序,它每晚从一个计划任务运行以执行一些维护。该应用程序还将一个Form显示为一个启动画面,通知系统中的任何人该应用程序正在运行,并显示状态。

要使用正确的权限运行应用程序,我需要以另一个用户身份运行“计划任务”。但是,当我这样做时,应用程序会运行,但登录用户看不到启动画面。

我理解这个问题但不确定如何解决它。有没有办法为其他用户启动表单?或者,有没有办法将表单显示为所有登录用户的通知,类似于“Windows正在关闭”消息?

感谢您的想法。

2 个答案:

答案 0 :(得分:1)

将您的应用程序转换为将始终以“内核模式”运行的服务,与登录用户无关。然后创建一个小客户端应用程序,在用户登录时将以“用户模式”运行(每个用户一个实例)。使用进程间通信从服务器(服务应用程序)向每个客户端(用户应用程序)发送“信号”。

答案 1 :(得分:0)

您可以编写另一个小应用程序,并将其放在All Users启动文件夹中。此应用程序在用户登录时运行,然后无形地坐在(或在托盘区域中)并监视指示您的第一个应用程序即将运行的特定触发器。当它看到它们时,它会启动启动画面。