Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

Послать   Найти похожие ветки 

 
Res   (2008-04-01 17:34) [0]

Здравствуйте, как послать нажатие клавиши допустим F1, окну приложения calc.exe?


 
ANB   (2008-04-01 17:42) [1]

SendMessage(Хендл_Окна, WM_KEYDOWN, ...)


 
Res   (2008-04-01 18:00) [2]

Такой вопрос, а если не знаешь Хендл_окна, но знаешь имя exe, то можно найти Хендл окна этого экзе?


 
ANB   (2008-04-01 18:07) [3]


> но знаешь имя exe

Можно, но задерешься. Намного проще узнать текст заголовка окна и посмотреть имя класса спаем. Но если таких окон будет несколько, то выцепишь только одно из них.

Кстати, глупый вопрос - а нафига это нужно ?


 
AIK ©   (2008-04-01 18:11) [4]


> Кстати, глупый вопрос - а нафига это нужно ?


Чтобы туда
> послать нажатие клавиши допустим F1

:)


 
Res   (2008-04-01 18:13) [5]

Есть такая прога называется AC Tools она меня устраивает, но есть одно но :) для начатия клавиши, она активирует окно,  а мне нужно послать нажатие клавиши без активации окна


 
ANB   (2008-04-01 18:14) [6]


> AIK ©   (01.04.08 18:11) [4]

Клавиатурой это сделать намного легче.
А если нужен программный калькулятор :
1) любая субд - уже формульный калькулятор
2) не так уж и трудно написать свой. да и готовых хватает, включая халявые.


 
Res   (2008-04-01 18:16) [7]

Тут не калькулятор :) я просто в пример взял )
и так, нужно теперь послать F1, но вот незнаю где взять все эти названия :))) для SendMessage
procedure TForm1.Button1Click(Sender: TObject);
var
h:HWND;
begin
h:=FindWindow(0,"RF Online"); //Íàõîäèì RF Online îêíî
 if(h<>0) then
 begin
   SendMessage()
 end
 else
 begin
   application.MessageBox("&#206;&#248;&#232;&#225;&#234;&#224;! &#207;&#238;&#230;&#224;&#235;&#243;&#233;&#241;&#242;&#224; &#231;&#224;&#233;&#228;&#232;&#242;&#229; &#226; &#232;&#227;&#240;&#243;","Error!!!!", mb_ok);
 end;
end;


 
AIK ©   (2008-04-01 18:25) [8]


> ANB   (01.04.08 18:14) [6]


Ты чё попутал ???


 
Res   (2008-04-01 18:37) [9]

Удалось послать f10, но только тогда, когда окно активируешь.
Можно ли как нить послать без активации окна?
var
h:HWND;
begin
h:=FindWindow(0,"RF Online"); //&#205;&#224;&#245;&#238;&#228;&#232;&#236; RF Online &#238;&#234;&#237;&#238;
 if(h<>0) 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("&#206;&#248;&#232;&#225;&#234;&#224;! &#207;&#238;&#230;&#224;&#235;&#243;&#233;&#241;&#242;&#224; &#231;&#224;&#233;&#228;&#232;&#242;&#229; &#226; &#232;&#227;&#240;&#243;","Error!!!!", mb_ok);
 end;
end;


 
Игорь Шевченко ©   (2008-04-01 19:58) [10]

Читаем правила оформления вопросов



Страницы: 1 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1206957803
031178
2008-03-31 14:03
2008.04.27
TChart


15-1204816041
Сатир
2008-03-06 18:07
2008.04.27
Марко Кэнту опубликовал открытое письмо...


15-1205829243
DVM
2008-03-18 11:34
2008.04.27
Помогите с переводом на русский одной фразы из SDK


15-1205844756
Галинка
2008-03-18 15:52
2008.04.27
Переименовать мп3-файлы


3-1196327588
DenisX
2007-11-29 12:13
2008.04.27
Проблема с кодировкой (с кириллицей)