C # SendKey для приложения MS-DOS - PullRequest
2 голосов
/ 02 июня 2009

Мне нужно управлять устаревшим приложением DOS через SendKey в C #. Однако я обнаружил, что это не сработало.

С http://www.vbforums.com/showthread.php?t=39626, Я понимаю, что SendKey на самом деле не работает в приложении MS-DOS. Все приложение MS-DOS получает "\" при вызове SendKey.

Тем не менее, форум указывает на MSDN Article 142819 , который использует буфер обмена для нажатия клавиш в приложении MS-DOS. Образец VB дается, но я не знаю, как перевести его на C #.

Кто-нибудь имеет или знает любой подобный пример, написанный на C #, на который я могу сослаться?

Ответы [ 2 ]

2 голосов
/ 02 июня 2009

Вместо этого следует использовать keybd_event ( pinvoke ). Вам нужно будет установить окно консоли в качестве окна переднего плана, используя SetForegroundWindow ( pinvoke ), а затем вызвать его.

1 голос
/ 02 июня 2009

Если я правильно понимаю вопрос, вы можете попробовать использовать Process.StandardInput свойство для отправки ключей. Чтобы получить объект Process, вы можете использовать один из методов GetProcessBy ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...