![]() |
Tastendruck simluieren mit variable ?
Hallo,
Ich hab ein problem, und zwar: Ich möchte tastendrücke simluieren, hab danach gesaucht und z.B. das hier gefunen:
Delphi-Quellcode:
also schreibt es ein C, doch wie könnte ich es machen damit es schreibt was in der variable "a" steht ?
keybd_event(Ord('C'), 0, 0, 0);
So hab ich es versucht:
Delphi-Quellcode:
Kommt zwar kein fehler aber es schreibt ganz einfach nichts. Was nun?
procedure TForm1.Timer1Timer(Sender: TObject);
var a: Integer; begin Timer1.Enabled := false; a := StrToInt('2'); keybd_event(Ord(a), 0, 0, 0); end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := true; end; |
Re: Tastendruck simluieren mit variable ?
Hallo k4ni,
die Funktion ord () erwartet als Parameter ein Char.
Delphi-Quellcode:
nicht getestet, aber so sollte es funktionieren.
var a: Char;
begin Timer1.Enabled := false; a := '2'; keybd_event(Ord(a), 0, 0, 0); end; |
Re: Tastendruck simluieren mit variable ?
Niceeee :) Danke!!! Es geht.
|
Re: Tastendruck simluieren mit variable ?
Da ich jetzt schon einen thread aufhabe, und diese frage wahrscheinlich sowieso leicht zu beantworten ist:
Da jetzt die variable kein integer wert mehr ist sondern ein Char ist kann ich ja keine funktionen wie </>/= oder +/-, wie kann ich ein Char zu einem Integer machen? Also z.B irgendwie so CharToInt ? |
Re: Tastendruck simluieren mit variable ?
Ord()
|
Re: Tastendruck simluieren mit variable ?
also dann sollte das hier:
Delphi-Quellcode:
eigentlich so aufzählen:
procedure TForm1.Timer2Timer(Sender: TObject);
var current2: Char; begin current2 := char(Ord(current)); if current > 999 then begin keybd_event(Ord(current2), 0, 0, 0); keybd_Event(VK_RETURN, 0, 0, 0); Current := current + 1; end else if current > 99 then begin keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord(current2), 0, 0, 0); keybd_Event(VK_RETURN, 0, 0, 0); Current := current + 1; end else if current > 9 then begin keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord(current2), 0, 0, 0); keybd_Event(VK_RETURN, 0, 0, 0); Current := current + 1; end else if current >= 0 then begin keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord('0'), 0, 0, 0); keybd_event(Ord(current2), 0, 0, 0); keybd_Event(VK_RETURN, 0, 0, 0); Current := current + 1; end; end; 0001 0002 0003 0004 .. 0010 0011 ...bis unendlich (bis jetzt) Doch irgendwie tut es das nicht xD, wieso? |
Re: Tastendruck simluieren mit variable ?
Dein Problem ist das keybd_event einen Tastecode erwartet und nicht den Ascii-Wert eines Zeichens.
keybd_event will also nicht den OrdinalWert eines großen 'A' haben wenn du ein große A Tippen willst sondern du musst erst die Schifttaste "betätigen" und dann die Taste "a" drücken: ![]() |
Re: Tastendruck simluieren mit variable ?
Außerdem werden die Tasten anscheinend nie losgelassen.
|
Re: Tastendruck simluieren mit variable ?
Zitat:
![]() |
Re: Tastendruck simluieren mit variable ?
Ok. Danke.
GIbt es keine möglichkeit es in dieser weise zu machen ? Sonst wirds ziemlich kompliziert denn es soll in dieser weise bis 10000 aufzählen können. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz