Ошибка SendKeys.SendWait, в которой отказано в разрешении, когда RDP закрыт

Я пытаюсь запустить программу, и мне нужно ввести в нее логин и пароль.

Для имитации нажатия клавиш я использую следующий код:

System.Windows.Forms.SendKeys.SendWait(login + "\t" + password + "\n\r");

К сожалению, все эти действия мне предстоит проделывать на сервере с ОС Windows Server 2008 R2 x64 и приходится использовать RDP. При активном RDP-подключении все в порядке, но если окно RDP закрыто или свернуто, SendWait вызывает исключение с сообщением «Отказано в доступе».

Как я могу эмулировать нажатия клавиш, когда RDP отключен?

Спасибо.


person user2862319    schedule 09.10.2013    source источник
comment
Это звучит справедливо, больше нет рабочего стола, на который можно отправить ключи.   -  person Hans Passant    schedule 09.10.2013


Ответы (1)


Вы можете использовать метод, описанный в этом с помощью Дэвид Джонсон

Создайте пакетный файл со следующими командами и сохраните его на рабочем столе рабочей станции, которую вы хотите оставить разблокированной: Я назвал свой файл Logoff.bat

START C:\Windows\System32\tscon.exe 0 /dest:console
START C:\Windows\System32\tscon.exe 1 /dest:console
START C:\Windows\System32\tscon.exe 2 /dest:console
START C:\Windows\System32\tscon.exe 2 /dest:console
START C:\Windows\System32\tscon.exe 3 /dest:console
START C:\Windows\System32\tscon.exe 4 /dest:console
START C:\Windows\System32\tscon.exe 5 /dest:console

Tscon.exe входит в стандартную комплектацию вашей установки Windows и специально создан для того, чтобы оставить ранее заблокированную консоль разблокированной. См. эту ссылку: http://support.microsoft.com/kb/302801.

В следующий раз, когда вы войдете на рабочую станцию ​​с помощью удаленного рабочего стола, не выходите из системы обычным способом, а запустите пакетный файл — в моем случае «Logoff.bat». Это завершит ваше подключение к удаленному рабочему столу и вы выйдете из системы, но продолжайте работу в разблокированном состоянии, чтобы любые сценарии выполнялись так, как будто кто-то действительно вошел в систему.

person Jaime Marín    schedule 09.06.2014