Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Generisanje pritiska na taster tastature

[es] :: Pascal / Delphi / Kylix :: Generisanje pritiska na taster tastature

[ Pregleda: 1692 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milnen
Nis

Član broj: 73950
Poruke: 332
*.rcub.bg.ac.yu.



+5 Profil

icon Generisanje pritiska na taster tastature08.03.2007. u 11:52 - pre 208 meseci
Zdravo,
Da li postoji nacin da iz mog programa u Delphiju generisem pritisak na odredjeni taster u nekom drugom programu koji je trenutno aktivan?
Treba da popunjavam neki web formular sa gomilom podataka, pa sam mislio da bi to moglo na ovaj nacin. (posaljem neka slova i brojeve, pa onda jedan TAB za prelazak na drugo polje itd)

Pozdrav,
Nenad
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Generisanje pritiska na taster tastature08.03.2007. u 14:21 - pre 208 meseci
> Da li postoji nacin da iz mog programa u Delphiju generisem pritisak na odredjeni taster u nekom drugom programu koji je trenutno aktivan?

Pritisak na tastaturu možeš da simuliraš sa:

Code:


procedure SimulateKey(const AKey: Word; const AShift: TShiftState);
type
  TShiftKeyInfo = record
    Shift: Byte;
    VKey: Byte;
  end;
  ByteSet = set of 0..7;
const
  ShiftKeys: array[0..2] of TShiftKeyInfo = ((Shift: Ord(ssCtrl); VKey: VK_CONTROL), (Shift: Ord(ssShift); VKey: VK_SHIFT), (Shift: Ord(ssAlt); VKey: VK_MENU));
var
  bShift: ByteSet absolute AShift;
  i: Integer;
begin
  for i := 0 to High(ShiftKeys) do
    if ShiftKeys[i].Shift in bShift then
      keybd_event(ShiftKeys[i].VKey, MapVirtualKey(ShiftKeys[i].VKey, 0), 0, 0);

  keybd_event(AKey, MapVirtualKey(AKey, 0), 0, 0);
  keybd_event(AKey, MapVirtualKey(AKey, 0), KEYEVENTF_KEYUP, 0);

  for i := High(ShiftKeys) downto 0 do
    if ShiftKeys[i].Shift in bShift then
      keybd_event(ShiftKeys[i].VKey, MapVirtualKey(ShiftKeys[i].VKey, 0), KEYEVENTF_KEYUP, 0);
end;



Prvi parametar ti je virtuelni kod tastera, npr. za 'a' i 'A' je 65, AShift označava koji specijalni taster takođe treba simulirati (shift, alt, control).

 
Odgovor na temu

milnen
Nis

Član broj: 73950
Poruke: 332
*.elfak.ni.ac.yu.



+5 Profil

icon Re: Generisanje pritiska na taster tastature08.03.2007. u 14:45 - pre 208 meseci
Radi! Hvala puno!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Generisanje pritiska na taster tastature

[ Pregleda: 1692 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.