Как ввести текст в фокус курсора - PullRequest
0 голосов
/ 16 января 2009

Я занимаюсь разработкой приложения для Windows .NET, которому нужно вставить текст в место, где находится курсор Курсор будет находиться в другом приложении, которое я не могу контролировать. Я думаю, что операционная система должна использоваться здесь, чтобы достигнуть этого. Можете ли вы помочь, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 16 января 2009

Поместите текст, который вы хотите вставить в буфер обмена

Найдите дескриптор окна:

Process[] processes = Process.GetProcessesByName("notepad");
foreach (Process p in processes)
{
    IntPtr pFoundWindow = p.MainWindowHandle;
    // Do something with the handle...
}

Отправьте сообщение "Ctrl + V" в окно с помощью pinvoke, см. http://www.pinvoke.net/default.aspx/user32.SendMessage

0 голосов
/ 16 января 2009

Самое простое - использовать класс SendKeys в Windows.Forms.

В противном случае используйте SendMessage из API Windows для отправки ключа по ключу ( некоторая информация об этом).

Не используйте буфер обмена, пользователь, как правило, этого не хочет и не ожидает.

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