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

Вниз

SendMessage + WM_KEYDOWN   Найти похожие ветки 

 
FeRR ©   (2003-12-16 12:34) [0]

Вроде правильно сделал, а неработает :(
По идее оно должно нажатие любой клавиши
в активном окне менять на нажатие VK_BACK,
но получается что вообще неработают кнопки :)
Объясните, плз, где я тут ступил...

var
MyHookHandle :HHook;
wnd:HWND;
function MyKeyHook(Code: integer; wParam: word; lParam: Longint):LongInt;stdCall;
begin
if code >= 0 then begin
wnd:=getForegroundWindow;
sendMessage(wnd,WM_KEYDOWN,VK_BACK,0);
end
else begin
CallNextHookEx(MyHookHandle,Code, wParam, lParam);
exit;
end;
end;
procedure SetHook;stdCall;Export;
begin
MyHookHandle := SetWindowsHookEx(WH_Keyboard, @MyKeyHook, hInstance, 0);
end;


 
Новичек   (2003-12-16 13:21) [1]

когда ты нажимаешь на кнопку - то и отжать тоже ее должен:
WM_KEYUP


 
FeRR ©   (2003-12-17 04:18) [2]

sendMessage(wnd,WM_KEYDOWN,VK_BACK,0);
sendMessage(wnd,WM_KEYUP,VK_BACK,0);
Пробовал так уже, то же самое получается :(


 
FeRR ©   (2003-12-17 09:10) [3]

Вобщем почти разобрался в чем дело было /вместо GetForegroundWindow использовал FindWindow/, только
Send оно всеравно не отправляет, хотя окно находит...

wnd:THandle;
classname: array[0..255] of char;

function ...
begin
...
wnd := FindWindow(nil,"test.txt - Блокнот"); // например
GetClassName(wnd,classname,SizeOf(ClassName));
wnd := FindWindow(classname,nil);
SendMessage(wnd, WM_DOWN, VK_MENU, 0);
SendMessage(wnd, WM_UP, VK_MENU, 0);
...


 
FeRR ©   (2003-12-18 04:35) [4]

Сделал через keybd_event - тема закрыта...



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

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

Наверх




Память: 0.47 MB
Время: 0.05 c
1-79973
Delph
2004-02-12 16:46
2004.02.25
String to Data


1-79980
Zvr@b
2004-02-13 15:05
2004.02.25
Как построить график функции


3-79662
Вованчик
2004-02-03 08:01
2004.02.25
снова IBUpdateSQL


1-79853
aus
2004-02-09 14:16
2004.02.25
Подсказки


14-80161
F-man
2004-02-01 15:26
2004.02.25
Создание Wizard-a