Witam.
Chciałbym wiedzieć jak wysyłać dwa klawisze z klawiatury do aplikacji (np. ctrl+przycisk w dół). Chodzi o to, by było to wciśnięte w tym samym czasie.
Próbowałem dużo, ale wygląda na to, że pierw wysyłana jest wiadomość z controlem, później z klawiszem w dół.
Mam taki kod:
function twokeys(x :string): string;
var
i : integer;
z : integer;
begin
i := 0;
z:= 0;
begin
if x = 'twokeys' then
i := 17;
z := 40;
SendMessage(h, WM_KEYdown, i, 0);
SendMessage(h, WM_KEYdown, z, 0);
SendMessage(h, WM_KEYUP, z, 0);
SendMessage(h, WM_KEYUP, i, 0);
end;
end;
Kombinowałem jeszcze tak:
var
Inputs:array[0..3] of tagInput;
ProcessID: Cardinal;
begin
GetWindowThreadProcessId(FindWindow('notepad',Nil), @ProcessID);
ZeroMemory(@Inputs, sizeof(Inputs));
Inputs[0].Itype:=INPUT_KEYBOARD;
Inputs[0].ki.wVK:=VK_LCONTROL;
Inputs[1].Itype:=INPUT_KEYBOARD;
Inputs[1].ki.wVK:=VK_DOWN;
SendInput(length(Inputs), Inputs[0], sizeof(Inputs[0]));
end;
Niby działa, ale nie konkretnie w aplikacji, lecz wszędzie... Da się zrobić tak, by to tylko do aplikacji wysyłało te czynności?