У меня есть короткая программа, которая используется исключительно с подключением к удаленному рабочему столу, которая настроена только для запуска этой программы и не позволяет какой-либо другой доступ к удаленному компьютеру. Ранее программа просто выходила и позволяла завершить соединение, но это было очень медленно, поэтому я написал следующий код, чтобы завершить удаленный сеанс после завершения работы программы.
[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. Соединение завершается после запуска программы. Однако при тестировании и отладке этой программы мой компьютер перезагружается после каждого запуска.
Я ищу хороший способ провести различие между этими случаями. Должен ли я установить какой-нибудь сценарий отладки, который удаленно запускает и запускает программу удаленно? Или есть какой-то способ программно определить, работает ли программа в режиме отладки, и просто отключить процедуру выхода в этом случае?