ďťż

Ładny brzuch

Chciałem napisać program ,który po wciśnięciu pewnej kombinacji klawiszy w innym programie (nie napisanym przeze mnie) ,wyśle mu ciąg komunikatów symulujących naciśnięcia klawiszy.

Niestety nie wiem jak przechwicić klawiaturę z innego programu ,a co do symulacji to chyba funkcja SendInput jest niewystarczająca (nie można określić jej do ,którego okna ma "wysłać" klaisze).



przechwycenie klawiatury: hotkey
aktywne okno: GetForegroundWindow()
wysłanie "klawiatury" do okna: http://forum.ks-eksp...ndpost&p=411331 http://forum.ks-eksp...showtopic=52875
Użytkownik Cyrkiel edytował ten post 30 październik 2005, 21:24

przechwycenie klawiatury: hotkey(...)

hotkey ?!
Ustawiasz kombinację klawiszy (np. CTRL+F4), kiedy naciśniej kombinację, do Twojego programu (okna) zostaje wysłany komunikat WM_HOTKEY. Wtedy przechodzi do punktu 2 i 3 :P



A jak napisać tego HotKeya (pierwszy raz o tym czytam ,serio)?


A jak napisać tego HotKeya (pierwszy raz o tym czytam ,serio)?

Można jeszcze założyć hook'a na komunikaty klawiatury :)

A czy ten HotKey bedzie działał globalnie?

//Cyrkiel: Zamiast GetForegroundWindow() moze być GetFocus() ?
//Kikiz: Hooki obciążają system (program-adresat jest cokolwiek zasobożerny)


Zamiast GetForegroundWindow() moze być GetFocus() ? Nie może :P
Hotkey jest po to, by działać globalnie :)

Jeszcze tylko mała podpowiedź:
Jak w Delphi robiło się procedury reagujące na komunikaty (zapomniałem)?


Jeszcze tylko mała podpowiedź:
Jak w Delphi robiło się procedury reagujące na komunikaty (zapomniałem)?
 private    procedure hotkey(var msg:tmessage); message wm_hotkey;ustawianie hotkey-a (przykład dla CTRL+F4, handle = Form1.Handle, 1 = nr hotkey-a; można dać ich więcej):RegisterHotKey(handle,1,MOD_CONTROL,VK_F4);
Użytkownik Cyrkiel edytował ten post 31 październik 2005, 11:02
Chyba źle wysyłam komunikaty:
if msg.WParam <> id then exit;  uchwyt := GetForegroundWindow();  for i:=0 to 10 do  begin  SendMessage(uchwyt,WM_KEYDOWN,Ord('x'),0);  SendMessage(uchwyt,WM_KEYUP,Ord('x'),0);  end;
Uruchomiłem Notatnik wcisnąłem w nim Ctrl+F4 i nic się nie stało...
(rejestracja odbyła się bezproblemowo)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •