Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Послать


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, ...)


Наверх

Титульная страница Поиск, карта сайта Написать письмо