Отправка текста в любое окно, которое в данный момент находится в фокусе - PullRequest
1 голос
/ 24 февраля 2012

Я пытаюсь написать программу на C #, которая отправляет текст в другие окна. Как мне написать команду в C #, которая отправляет текст в окно, которое в настоящее время находится в фокусе пользователей?

Например:

Если пользователь щелкнет по открытому окну блокнота, открытому письму с надписью или открытому листу Excel, а затем нажмет кнопку в моей программе, текст будет «вставлен» непосредственно в последнее окно блокнота / письмо с надписью / ячейка Excel, на которую пользователь нажимал в последний раз.

Надеюсь, мой вопрос достаточно ясен. Я не такой опытный и мне не хватает терминологии.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Уберите ваше приложение из фокуса, свернув или свернув главное окно, а затем отправьте текст с помощью

SendKeys.SendWait("Hello World!");    

Наконец, восстановите главное окно.


Есликод выполняется в основной форме, вы можете сделать это

this.Visible = false;
SendKeys.SendWait("Hello World!");    
this.Visible = true;
2 голосов
/ 24 февраля 2012

Ответ Оливье на самом деле кажется более точным (и научил меня чему-то :)), чем мой оригинал "не кажется достижимым". Если вам нужен пример, взгляните на это:

http://www.codeproject.com/Articles/18366/Sending-Keystrokes-to-another-Application-in-C

Тем не менее, на более сложном уровне, без API для вызова, есть немного больше, что вы можете сделать за пределами этого решения.

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