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.83 MB
Zeit: 0.048 c
6-22270
Ajax
2001-09-15 10:15
2002.01.08
Ich hatte eine Frage zu der Mail 3.


6-22280
rg
2001-10-06 13:26
2002.01.08
Wie akzeptiere ich eine Nachricht von Winpopup (Chat für lokalki)?


1-22050
Russisch
2001-12-18 17:03
2002.01.08
GUT SEHR INTERESSANTE FRAGE :))))


7-22440
Rumrunner
2001-05-13 00:32
2002.01.08
Win98 kann die Internetfreigabe für das lokale Netzwerk zulassen.


4-22480
amamed_3071
2001-11-03 10:09
2002.01.08
Drucken Sie auf einem Epson-Drucker





Afrikanisch albanisch Arabic Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch rumänisch Russisch serbisch Slovak Slowenisch Spanisch swahili Swedish 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