我有一个专门用于远程桌面连接的短程序,该连接已设置为仅运行该程序,不允许任何其他访问远程计算机。以前,程序只是退出,让连接终止,但是速度很慢,所以我写了下面的代码,在程序运行完成后终止远程会话。
[DllImport("wtsapi32.dll", SetLastError = true)]
static extern bool WTSLogoffSession(IntPtr hServer, int SessionId, bool bWait);
private IntPtr WTS_CURRENT_SERVER_HANDLE;
private const int WTS_CURRENT_SESSION = -1;
...
private void HardTerminalExit()
{
WTSLogoffSession(WTS_CURRENT_SERVER_HANDLE, WTS_CURRENT_SESSION, false);
}
当该程序处于其生产环境中时,这可以正常工作,由使用特定 RDP 连接文件进行远程处理的人员使用。程序运行后连接退出。但是,在测试和调试此程序时,我的计算机在每次运行后都会重新启动。
我正在寻找一种区分这些情况的好方法。我应该设置某种远程调试脚本并远程运行程序吗?或者有没有办法以编程方式检测程序是否在调试模式下运行并在这种情况下禁用退出过程?