![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Послать
Res © (2008-04-01 17:34:00)Здравствуйте, как послать нажатие клавиши допустим F1, окну приложения calc.exe?
Игорь Шевченко (2008-04-01 19:58:00) [1]Читаем правила оформления вопросов
Res (2008-04-01 18:37:00) [2]Удалось послать f10, но только тогда, когда окно активируешь.
Можно ли как нить послать без активации окна?
var
h:HWND;
begin
h:=FindWindow(0,'RF Online'); //Íàõîäèì RF Online îêíî
if(h0) then
begin
SendMessage(h, WM_KEYDOWN,vk_f10,0);
sleep(1000);
SendMessage(h, WM_KEYUP,vk_f10,0);
sleep(2000);
SendMessage(h, WM_KEYDOWN,vk_f10,0);
sleep(1000);
SendMessage(h, WM_KEYUP,vk_f10,0);
end
else
begin
application.MessageBox('Îøèáêà! Ïîæàëóéñòà çàéäèòå â èãðó','Error!!!!', mb_ok);
end;
end;
AIK (2008-04-01 18:25:00) [3]
> ANB (01.04.08 18:14) [6]
Ты чё попутал ???
Res (2008-04-01 18:16:00) [4]Тут не калькулятор :) я просто в пример взял )
и так, нужно теперь послать F1, но вот незнаю где взять все эти названия :))) для SendMessage
procedure TForm1.Button1Click(Sender: TObject);
var
h:HWND;
begin
h:=FindWindow(0,'RF Online'); //Íàõîäèì RF Online îêíî
if(h0) then
begin
SendMessage()
end
else
begin
application.MessageBox('Îøèáêà! Ïîæàëóéñòà çàéäèòå â èãðó','Error!!!!', mb_ok);
end;
end;
ANB (2008-04-01 18:14:00) [5]
> AIK © (01.04.08 18:11) [4]
Клавиатурой это сделать намного легче.
А если нужен программный калькулятор :
1) любая субд - уже формульный калькулятор
2) не так уж и трудно написать свой. да и готовых хватает, включая халявые.
Res (2008-04-01 18:13:00) [6]Есть такая прога называется AC Tools она меня устраивает, но есть одно но :) для начатия клавиши, она активирует окно, а мне нужно послать нажатие клавиши без активации окна
AIK (2008-04-01 18:11:00) [7]
> Кстати, глупый вопрос - а нафига это нужно ?
Чтобы туда
> послать нажатие клавиши допустим F1
:)
ANB (2008-04-01 18:07:00) [8]
> но знаешь имя exe
Можно, но задерешься. Намного проще узнать текст заголовка окна и посмотреть имя класса спаем. Но если таких окон будет несколько, то выцепишь только одно из них.
Кстати, глупый вопрос - а нафига это нужно ?
Res (2008-04-01 18:00:00) [9]Такой вопрос, а если не знаешь Хендл_окна, но знаешь имя exe, то можно найти Хендл окна этого экзе?
ANB (2008-04-01 17:42:00) [10]SendMessage(Хендл_Окна, WM_KEYDOWN, ...)