0

我用 C# 和 WHITE 制作了一个简单的应用程序,单击一个按钮来清除日志。我使用远程桌面连接连接到我的测试机器并执行该应用程序。当我的会话连接时它工作正常,但每当我断开我的会话时,它就会停止工作。

当 Windows 会话断开时,有什么方法可以执行该应用程序?

4

4 回答 4

2

您可以编写一个Windows Service

于 2011-11-16T08:41:13.100 回答
1

您还可以使用任务调度程序。您可能不需要 C# 包装器,您可以在调度程序中自己添加所需的条目。

于 2011-11-16T08:50:23.557 回答
0

当我的会话连接时它工作正常,但每当我断开我的会话时,它就会停止工作。

这是设计使然。当您断开会话时,它会被锁定。当您的会话被锁定时,UI 自动化将不起作用。

你可以通过从不锁定会话来解决这个问题,可能通过不同的远程桌面工具(VNC/PcAnywhere)。但这绝对是一个黑客。

相反,我建议采用不同的方法。我建议尽可能避免 UI 自动化。我一直发现 UI 自动化是不稳定且不可靠的。

在对您的问题的评论中,您说您的应用程序只是 UI 自动化单击按钮以清除日志。日志由DebugView应用程序生成。

我建议您改为登录到文件。网站上提到了此功能DebugView

http://technet.microsoft.com/en-us/sysinternals/bb896647

您还可以考虑使用远程监控。

如果大小是一个问题,您还可以查看“日志文件包装”和“日志文件翻转”功能。

于 2011-11-17T06:41:25.803 回答
0

取自 https://www.ranorex.com/help/latest/ranorex-remote/remote-faq#c13444

在远程机器上创建一个批处理文件并插入以下代码:

for /f "skip=1 tokens=3 usebackq" %%s in (
  `query user %username%`
) do (
 %windir%\System32\tscon.exe %%s /dest:console
)

将此批处理文件保存在远程计算机的桌面上,并将其命名为:“KeepSessionOpen.bat”。如果您需要断开 RDP 会话,您现在只需使用管理员权限运行此批处理文件,您的远程计算机将保持解锁状态。

于 2018-01-05T18:44:46.477 回答