![]() |
Tastendrücke
Hallo
ich versuche einen Tastendruck zu simulieren, warum aber, funktioniert folgender Code nicht?
Code:
Aus ein Paar versuchen, weiß ich, dass er den Tastencode der F3 Taste sendet und nicht den der "r" taste! Was mache ich falsch?
edit1.setfocus;
keybd_event(ord('r'),0,0,0); Tnx TO |
Spontaner tipp: teste mal ord('R') nicht ord('r')!
|
Moin The Omega,
die Taste ist R nicht r. [EDIT]Mist, zu spät ;-)[/EDIT] |
Hi,
Muss man da nicht anstatt den ASCII- Nummern der jeweiligen Taste (die "ord" ja zurückgibt) Hex-Werte übergeben? Ich hab mir dazu vor einigen Monaten mal was zum Ausprobieren geschrieben, hab aber die Sources nich mehr. Da hatte ich mir für irgendetwas ne lange Liste von VKeys gemacht, die dann jeweils für einen HexWert ($irgendwas) standen. Wahrscheinlich hab ich das so gemacht, weil man die HexWerte ja nich mit dieser IntToHex- Funktion errechnen und übergeben kann (die gibt ja nen string zurück). Die hab ich mir dann von VK_A bis VK_Z und in kleinbuchstaben durchdefiniert. Vermutlich gibts ne Unit in der die drinstehen, aber die hab ich damals nich gefunden... Also, wie gesagt: Mein Vorschlag is, die Acii- Werte als Hex zu übergeben und nich als Integer. Is aber zu lange her, vielleicht is das auch der falsche Ansatz. Bis denn, S - tefano |
Hi S-tefano,
es spielt keine Rolle, ob die Zahl als Hexadezimal- oder Dezimalzahl übergeben wird. Die Dezimalzahl ist ja nichts weiteres als eine Kodierung der binären Darstellung im Speicher, die Hexadezimalzahl ebenfalls. Die Unterscheidung ist sinnvoll, da Binärzahlen unbequem zu lesen sind und leicht in Hexadezimalzahlen umwandelbar sind, spielt allerdings bei der Verarrbeitung im Speicher keine Rolle. |
Moin S - tefano,
das Zahlensystem, in dem Du die Zahlen angibst spielt keine Rolle, ob Du also Zahlen zur Basis 10, oder zur Basis 16 nimmst, wird sich nicht im geringsten auf das Auswirken was die Funktion macht. Zu Deiner Idee mit VK_A usw. Schau mal in der Hilfe unter "Virtuelle Tastencodes". Dort wird ausdrücklich darauf hingewiesen, dass solche "normalen" Tasten nicht als virtuelle Tastencodes angelegt wurden. (A bis Z und die Ziffern) Kann man natürlich machen, womit dann, Vorteil, auch die Unterscheidungsprobleme zwischen A und a wegfallen (vorausgesetzt man legt die Konstanten richtig an ;-)). Übrigens kannst Du das Ergebnis von IntToHex durchaus als Zahl übergeben, wenn Du ein '$' davorsetzt, also '$'+IntToHex(...) schreibst. [EDIT]Schon wieder zu spät. Zweimal im gleichen Thread :cry: :mrgreen: [/EDIT] |
Hi,
jo stimmt, hattest recht. (so @ C.Seehase und Chewie) Hm, aber ich weiß genau dass ich mir sone Liste angelegt hab... Komisch. Naja, also theomega, wenns so wie dus z.Zt. machst nich klappt, kannstes ja mal mit soner Liste versuchen. Bei mir hats jedenfalls geklappt... :witch: Werd mich am Wochenende und in den Ferien mal damit beschäftigen, so als Nebenprojekt zu meinem anderen Prog, dass hoffentlich laufen wird. Bis dann, S - tefano |
Hallo,
ich stand kürzlich vor einem ähnlichen Problem. Eine Lösung findest Du bei Andreas Blenk ![]() unter: Delphi-Tipps Komponenten/Oberfläche/Anwendung/Strings Wie kann ich einen simulierten Tastendruck an eine Komponente senden? Das funktioniert ausgezeichnet. Für das kleine r musst Du entweder die Dezimalzahl 82 einsetzen oder ord('R'). Für das grosse R musst Du als zweite Taste (Key2) VK_Shift einsetzen. Falls Du nicht auf der Tastatur vohandene Zeichen (ALT+.....) durch Drücken der Funktionstasten erzeugen willst (zB ñ, das war mein Problem), melde Dich bitte per eMail bei mir. Werner |
hi,
hab da ein bisl anderes Problem, dachte ich frag mal vielleicht kann mir ja jemand helfen :oops: Habe auf meinem Keyboard eine Umschalttaste für Funktionstasten (doppelte Belegung) wie kann ich die aktiviren deaktivieren ?? Beziehungsweise Standartmäsig aktivieren ? Microsoft Multimedia Keyboard :freak: gruß Steven |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 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