![]() |
PostMessage - C#
Мне нужно в окне напечатать определенный текст те мне нужен метод в который посылаешь строчку и она печатается. В моем методе реализованная работа с буфером обмена, но мне нужно чтоб именно кнопка за кнопкой нажималась. Помогите написать метод в котором не используется буфер обмена. Нужно с помощь функции PostMessage так как она работает даже без фокуса на окне что и нужно. Вот кстати метод который работает через буфер обмена.
Код:
public static void SendTextToNotepad(string text) |
ну это ты загнул =\
это без нажатия: все что тебе нужно это: 1. FindWindow 2. FindWindowEx 3. SetWindowText это WinAPI функции. Описание в msdn, а описание импорта на http://pinvoke.net с нажатием: Если код твой: System.Windows.Forms.SendKeys Если не твой: keybd_event |
Цитата:
|
нда...
на почитай: http://msdn.microsoft.com/ru-ru/library/ms646304(en-us,VS.85).aspx Функция keybd_event (событие_клавиатуры) Функция keybd_event синтезирует нажатие клавиши. Система может использовать такое синтезируемое нажатие клавиши, чтобы создать сообщение WM_KEYUP или WM_KEYDOWN. Вызывает функцию keybd_event программа обработки прерываний драйвера клавиатуры. |
А через PostMessage вообще не как ?
Код:
PostMessage(mem.WindowHandle, 0x100, 0x46, (int)IntPtr.Zero); |
Console.WriteLine(Keys.Z);
Console.WriteLine((int) char.Parse("z")); оно?! |
Вот так печатается символ z на русском раскладе я.
Код:
PostMessage(mem.WindowHandle, 0x100, (int)Keys.Z, 0x101);Если пробовать Код:
PostMessage(mem.WindowHandle, 0x100,(int)char.Parse("z") 0x101); |
SendKeys.Send("ololo{ENTER}");
SendKeys.SendWait("ololo{ENTER}"); второе ждет пока процесс обработает нажатия, первое нет. соотв. первое быстрее. но оно печатает не по хендлу а в том поле куда установлен курсор. тоесть делаем задержку на 3 секунды перед печатью чтобы успеть поставить курсор куда надо. |
Цитата:
|
Код:
[DllImport("user32.dll")] |
| Время: 07:59 |