elo- jak w delphi uzyskac efekt jaki w systemie XP daje wcisniecie klawiszy windows+D czyli minimalizacja wszystkich okien (widzimy pulpit wtedy)...niechodzi mi o jakeis procedury tylu minimize.all w petelce tylko konkretnei jak zasymulowac win+D ...pozdro..kto sie odwazy pomóc :D?
SendInput, wyszukiwarka.
no elo :) sendinput troche dziwne dla mnie uzylem funkcji keyb_events
keybd_event(VK_LWIN, 0, 0, 0);
keybd_event(Ord('D'), 0, 0, 0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
to tak dla potomnych :) pozdro
SendInput jest analogiczne, tyle, że za jednym razem wysyłasz kilka inputów (i to nie tylko z klawiatury ale i na przykład myszy). W dodatku keybd_event jest makrem, które wewnętrznie i tak używa SendInput.
oo szawik problem rozwiazalem keybd-events ale podaj jakis prosty przyklad na Twoje sendinput.plis
var Inputs:array[0..3] of tagInput;
begin
ZeroMemory(@Inputs, sizeof(Inputs));
Inputs[0].Itype:=INPUT_KEYBOARD;
Inputs[0].ki.wVK:=VK_LWIN;
Inputs[1].Itype:=INPUT_KEYBOARD;
Inputs[1].ki.wVK:=ord('D');
Inputs[2].Itype:=INPUT_KEYBOARD;
Inputs[2].ki.wVK:=ord('D');
Inputs[2].ki.dwFlags:=KEYEVENTF_KEYUP;
Inputs[3].Itype:=INPUT_KEYBOARD;
Inputs[3].ki.wVK:=VK_LWIN;
Inputs[3].ki.dwFlags:=KEYEVENTF_KEYUP;
SendInput(4, Inputs[0], sizeof(Inputs[0]));
end;
Niby więcej kodu, ale zauważ, że wszystko, co tu ustawiasz, odpowiada temu co podajesz do makra keybd_event, z tym, że tu:
1. Możesz wszystko wysłać na raz
Jeśli w tym samym czasie wystąpi inne zdarzenie, to zostanie dopisane za wybranymi, a nie gdzieś między; gdy symulujesz ALT+CTRL+E, a użytkownik naciśnie DEL, to nie wyjdzie ALT+CTRL+DEL; z użyciem kilku osobnych makr może wyjść.
2. Możesz w jednym dodaniu podać różne operacje
.. dla myszy, klawiatury i sprzętowe (ale to już inna historia) - ich kolejność wciąż będzie zachowana. Makra nie dają tej gwarancji.
ok przyjalem do wiadomosci, dzieki szczawik [browar]