![]() |
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. |
Re: Tastendruck simluieren mit variable ?
kannst du doch, übergebe einfach der Funktion (wo mein Link hinführt) die Zahl als String
|
Re: Tastendruck simluieren mit variable ?
also du meinst
Delphi-Quellcode:
aber wie kann ich dann eine aufzählung machen, ich kann ja die zahl in der function nichtmehr ändern. oder meinst du es anderst ?
keybd_event(Ord('0'), 0, 0, 0);
|
Re: Tastendruck simluieren mit variable ?
du hast es glaub ich nich ganz verstanden. keybd_event verlangt eine taste und nicht den ascii-wert eines zeischens. und ich meinte diese Funktion:
![]() |
Re: Tastendruck simluieren mit variable ?
Da gab' s doch auch noch die SndKey32.pas, wenn ich mich recht entsinne. :gruebel:
|
Re: Tastendruck simluieren mit variable ?
Naajaa egal. Ich bekomms nich gebacken. Danke trotzdem an alle dir mir geholfen haben! Thx.
|
Re: Tastendruck simluieren mit variable ?
Wieso bekommst Du das nicht gebacken? Kopier Dir doch einfach die Funktion aus dem Link in Deinen Quelltext und ruf sie auf.
Delphi-Quellcode:
EnterText('0001');
|
Re: Tastendruck simluieren mit variable ?
achso lol okay danke, geht jetzt PERFEKT. DANKEEEEEEEEEEEEEE!
NUr jetzt noch eine frage: Gibt es etwas um zu ermitteln wie oft ein Timer schon durchgelaufen ist? |
Re: Tastendruck simluieren mit variable ?
Klar, eine private Variable im Timer hochzählen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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