在远程桌面连接上运行C#Winform程序

时间:2015-04-09 01:43:43

标签: c# windows winforms scheduled-tasks windows-server-2008

简短版本:如何向在Windows Server环境中远程登录的用户显示Winforms应用程序?

后台:我正在将C#Winforms应用程序部署到许多不同的Windows服务器上,有些是2008年,有些是2012年。当用户通过远程桌面登录其中一台服务器时,我想要表格立即显示在用户的屏幕上。程序本身是一个基本形式,它写入应用程序部分的Windows事件日志。

到目前为止有效:当用户远程登录时,我已成功将程序启动到Windows Server 2008计算机上。我通过创建由用户登录触发的计划任务来完成此操作。这是执行此操作的批处理文件:

SCHTASKS /Create /TN "MyLogonTask" /TR "C:\Path\To\Program.exe" /SC ONLOGON /IT

以下是问题:当创建任务的用户以外的用户登录时,表单不会显示。更具体地说,任务确实开始,但表单只显示创建任务的用户的实际登录的用户更好。

我做了什么:我已经尝试更改任务内部的设置,以及启动和不使用管理员权限的程序。此外,我确实尝试删除并重新创建具有不同用户的任务,并且每次只为创建计划任务的用户启动表单。到目前为止,我没有任何运气让程序显示给正确的用户。

1 个答案:

答案 0 :(得分:1)

您可以在StartUp文件夹中放置一个快捷方式。此文件夹的位置可能因操作系统而异,但在2012 R2上,用户就在此处:

C:\Users\[USER]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

,机器就在这里:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp