Witam
Mam Następujący problem , chce przesłać do Okna o dowolnym Handl'e Kombinacje Klawiszy Ctr+C Ctr+A :)
do przesyłki zwykłego "textu " zakończonego Enter'em używam
Procedure SetText(WindowHandle: hwnd;Text:String);
begin
SendMessage (WindowHandle,wm_settext, 0, longint(@Text[1]));
PostMessage(WindowHandle, WM_KeyDown, Windows.VK_RETURN , $00020001);
PostMessage(WindowHandle, WM_KeyUp, Windows.VK_RETURN, $C0020001);
end;
var
H:THandle:
Do przesyłania pojedyńczych klawiszy:
PostMessage(H, WM_KeyDown, Integer('A'), $00020001);
PostMessage(H, WM_KeyUP, Integer('A'), $00020001);
i wszystko działa , Ale potrzebuje obsługi Kombinacji klawiszy np (Ctr+A) (Ctrl+V)
a sztuczka z "przytrzymaniem Klawisza" Ctrl i wciśnięciem A nie zadzała:
PostMessage(H, WM_KeyDown, VK_CONTROL, $00020001);
PostMessage(H, WM_KeyDown, Integer('A'), $00020001);
PostMessage(H, WM_KeyUP, Integer('A'), $00020001);
PostMessage(H, WM_KeyUP, VK_CONTROL, $00020001);
Tymczasowo rozwiązalem problem tak :
Windows.SetFocus(H);
keybd_event(VK_CONTROL ,0,0,0);
PostMessage(H, WM_KeyDown, 65 , $00020001);
PostMessage(H, WM_KeyUP, 65 , $00020001);
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0) ;
Jednak Jest to "Wciśnięcie Klawisza" klawiatury i przez to "Wciśnięcie" blokuje Klawisz Ctrl Na chwilę "Wciśnięcia".
A więc jak wysłać Kombinację Ctr+A (lub np Ctr+U :) ) do dowolnego okna o podanym Handle ?
(nie mogę oprogramować odbioru Własnego Message'a ) po stronie okienka
odbierającego komunikat , bo jak mówiłem kontrolka ma być dowolna (np. dowolny edit w systemie).