![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Доброго времени суток всем. Меня интересует как сделать чтобы в нужномй мне программе при нажатии к примеру F4 производилось нажатие клавиши 'T' потом вводилась команда /home и нажимался Enter. Я даже не знаю как это можно реализовать?((
|
|
#2
|
||||
|
||||
|
Используем GetAsyncKeyState совместно с GetForegroundWindow (гуглим на использование функций). Для того, чтобы нажать ентер или вставить текст в текстовое поле чужой программы используем:
1. FindWindowEx 2. SendMessage (посылаем WM_CHAR) |
|
#3
|
||||
|
||||
|
А можете пример какой нить программы привести?
|
|
#4
|
||||
|
||||
|
Код:
var h1,h3:HWND;
begin
H1:=FindWindow(nil,'Безымянный - Блокнот');
if h1=0 then
begin
Application.MessageBox(PChar('Не найдено окно'), 'Увы :( ');
exit
end;
H3:=FindWindowEx(H1,0,'Edit','');
SendMessage(H3,WM_CHAR,0,Ord('D'));
end; |
|
#5
|
||||
|
||||
|
С блокнотом работает а но с тем что мне нужно нет ((
Чтобы там произвдились действия окно должно быть активным. |
|
#6
|
||||
|
||||
|
MicroSoft Spy++ тебе в помощь.
|
|
#7
|
||||
|
||||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Sleep(3000);// 3 сек чтоб открыть игру или др. прогу и смотреть результат
keybd_event(Ord('T'), 0, 0, 0); // нажали Т
keybd_event(Ord('T'), 0, KEYEVENTF_KEYUP, 0); // отпустили Т
keybd_event(VK_RETURN, 0, 0, 0); // нажали Enter
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); // отпустили Enter
end; |