Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Wie kann ich eine Nachricht an das System senden, dass eine Taste gedrückt wird? Finden Sie ähnliche Zweige


Delphimun   (2001-12-20 12:10) [0]

Wie sende ich eine Nachricht an das System, dass eine Taste gedrückt wird? Beispielsweise senden Sie diese Nachricht an das System, dass die Taste gedrückt wurde und der Benutzer gerade im Notizblock arbeitet, und dass diese Buchstaben in dem Notizblock geschrieben sind, den Sie an das System gesendet haben (dass Sie die Taste gedrückt haben).



gek   (2001-12-20 12:32) [1]

Sie erhalten ein Notizblock-Handle und senden es an wm_keydown



Delphimun   (2001-12-20 13:10) [2]

Ich habe es bereits herausgefunden (ich musste nicht nur das Notizbuch, sondern das allgemeine System senden)
Hier ist ein Beispiel aus der FAQ, das interessiert ist:

-------------------------------------------------- -----------------------
Nachfolgend finden Sie die Vorgehensweise zum Senden von Klicks an alle
ein Steuerelement (Fenstersteuerelement), das Eingaben von annehmen kann
Tastatur. Mit dieser Technik können Sie die Schlüssel einschalten.
NumLock, CapsLock und ScrollLock unter Windows NT. Die gleiche Technik funktioniert
und unter Windows 95 für CapsLock und ScrollLock funktioniert das aber nicht für die Taste
NumLock.
Bitte beachten Sie, dass es vier Verfahren gibt: SimulateKeyDown () -
Tastenanschläge emulieren (ohne loszulassen) SimulateKeyUp () -
Schlüsselfreigabe emulieren SimulateKeystroke () - einen Treffer emulieren
auf der Taste (drücken und loslassen) und SendKeys (), so dass Sie flexibel
Steuertastaturnachrichten gesendet.
SimulateKeyDown (), SimulateKeyUp () und SimulateKeystroke () empfangen Codes
virtuelle Schlüssel (virtural key) (wie VK_F1). Vorgehensweise
SimulateKeystroke () erhält einen zusätzlichen Parameter, der nützlich ist, wenn
Klicken auf Druckbild emulieren. Wenn dieser Parameter Null ist, sind alle
Der Bildschirm wird in die Zwischenablage kopiert. Wenn extra
Der Parameter ist gleich 1, nur das aktive Fenster wird kopiert.
Vier Methoden zum Klicken auf eine Schaltfläche veranschaulichen die Verwendung:
ButtonClick1 - enthält ein Capslock ButtonClick2 - fängt alle ab
Bildschirm in die Zwischenablage (Zwischenablage). ButtonClick3 - fängt ab
aktives Fenster in die Zwischenablage (Zwischenablage). ButtonClick4 - setzt den Fokus auf Bearbeiten und
sendet eine Zeichenfolge an.
Beispiel:

procedure SimulateKeyDown (Key: byte);
beginnen
keybd_event (Key, 0, 0, 0);
end;

procedure SimulateKeyUp (Key: byte);
beginnen
keybd_event (Key, 0, KEYEVENTF_KEYUP, 0);
end;

procedure SimulateKeystroke (Schlüssel: Byte; extra: DWORD);
beginnen
keybd_event (Key, extra, 0,0);
keybd_event (Key, extra, KEYEVENTF_KEYUP, 0);
end;

Prozedur SendKeys (s: string);
var i: ganze Zahl;
flag: bool;
w: Wort;
beginnen
{Status der Feststelltaste abrufen}
flag: = nicht GetKeyState (VK_CAPITAL) und 1 = 0;
{Wenn es sich um eine Feststelltaste handelt
wenn Flagge dann
SimulateKeystroke (VK_CAPITAL, 0);
für i: = 1 bis Länge (s) tun
beginnen
w: = VkKeyScan (s [i]);
{Wenn die Schlüsselübersetzung fehlerfrei ist}
if ((HiByte (w) <> $ FF) und (LoByte (w) <> $ FF)) then
beginnen
{Wenn die Umschalttaste gedrückt werden muss, halten Sie sie gedrückt}
wenn HiByte (w) und 1 = 1 dann
SimulateKeyDown (VK_SHIFT);
{Sende den VK_KEY}
SimulateKeystroke (LoByte (w), 0);
{Wenn der Schlüssel die Umschalttaste runter - loslassen}
wenn HiByte (w) und 1 = 1 dann
SimulateKeyUp (VK_SHIFT);
end;
end;
{Wenn es eine Feststelltaste war
wenn Flagge dann
SimulateKeystroke (VK_CAPITAL, 0);
end;

Prozedur TForm1.Button1Click (Sender: TObject);
beginnen
{Umschalten der Feststelltaste}
SimulateKeystroke (VK_CAPITAL, 0);
end;

Prozedur TForm1.Button2Click (Sender: TObject);
beginnen
{Bildschirm erfassen}
{durch simuliertes Drücken der Drucktaste}
SimulateKeystroke (VK_SNAPSHOT, 0);
end;

Prozedur TForm1.Button3Click (Sender: TObject);
beginnen
{Erfasse das Fenster in der Zwischenablage}
{durch simuliertes Drücken der Drucktaste}
SimulateKeystroke (VK_SNAPSHOT, 1);
end;

Prozedur TForm1.Button4Click (Sender: TObject);
beginnen
{Setze den Fokus auf ein Fenster (Editiersteuerung) und sende ihm einen String}
Application.ProcessMessages;
Edit1.SetFocus;
SendKeys ("Delphi ist RAD!");
end;
-------------------------------------------------- -------------------------

Jetzt muss ich den Klick des Benutzers auf die Claudia-Schaltfläche (zum Beispiel die alfit-Schaltfläche) verfolgen und diesen Klick aufheben / durch meine eigene ersetzen.




Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.57 MB
Zeit: 0.061 c
3-21932
Christina
2001-12-04 07:43
2002.01.08
Hilfe: (


14-22401
wHammer
2001-11-09 12:56
2002.01.08
Das war interessant


3-21963
szap
2001-12-05 11:53
2002.01.08
Geschwindigkeit


3-21987
Gut
2001-12-06 08:44
2002.01.08
Rxlib


4-22471
bsFrame
2001-11-02 11:42
2002.01.08
Komponente





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarisch katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Niederländisch Englisch estnisch Philippinisch Finnisch Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegisch
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Schwedisch Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch