sys_message(STRING* message)
Sendet eine Botschaft, die aus Tasteneingaben und Mausklicks besteht an das aktive Fenster oder den Dialog. Auf diese Weise können externe Programme durch die Engine "fernbedient" werden.
Parameter:
message - STRING* oder char*, Text, der die Tastaturzeichen enthält und gesendet werden soll Innerhalb des Strings haben die folgenden Zeichen eine besondere Bedeutung:
[Ctrl-] - das folgende Zeichen wird zusammen mit der [Ctrl-]-Taste gesendet.
[Alt-] -
das folgende Zeichen wird zusammen mit der [Altl-]-Taste gesendet.
[Shift-] - das folgende Zeichen wird zusammen mit der [Shift-]-Taste gesendet.
[Win-] - das folgende Zeichen wird zusammen mit der [Window]-Taste gesendet.
[Click x,y] - Mausklick auf den Punkt, der von den x-,y-Koordinaten relativ zur oberen linken Ecke des Fensters gegeben ist.
[...] - spezielle Funktionstasten wie [Enter], [Tab], [F1] etc. (siehekey mapping) werden in quadratischen Klammern angegeben.
[]], [[] - rechte und linke quadratische Klammer können in quadratischen Klammern angegeben werden.
Geschwindigkeit:
Mittel
Bemerkungen:
- Die Tastatureingaben werden an die Nachrichtenschleife des aktiven Fensters gesendet. Das funktioniert für sämtliche normale Windowsapplikationen, allerdings nicht für spezielle Programme, die keine Nachrichtenschleife verwenden.
- Die Funktion liefert zurück sobald die Tastatureingaben gesendet sind, die Reaktion des kontrollierten Programms kann aber länger dauern. Wenn der Tastendruck ein Dialog-Fenster öffnet, verwenden Sie sys_active, um zu warten bis der Dialog aktiv ist, ehe Sie weitere Eingaben senden.
- sys_message sollte nicht zum Senden von Nachrichten
- Zum Senden von Nachrichten an das gegenwärtige Engine-Fenster selbst, sollte sys_message nicht verwendet werden. Es kann jedoch zum Senden von Botschaften zu anderen Engine-Fenstern benutzt werden, wo sie durch Tasten-Events oder mit den Funktionen inkey oder inchar empfangen werden können.
Beispiel:
// Opens Notepad, writes something, saves it, and closes Notepad.
function main()
{
exec("c:\\windows\\system32\\notepad.exe",NULL); // start Notepad
while(!sys_active("Editor")) wait(1); // wait until Notepad is open
sys_message("Lite-C is really cool!"); // write something
sys_message("[Ctrl-]s"); // open Save dialog (Ctrl-S)
while(!sys_active(NULL)) wait(1); // wait until the dialog window is open
sys_message("cool.txt[Enter][Alt-][F4]"); // save as "cool.txt", and exit (Alt-F4)
sys_exit(NULL);
}
Siehe auch:
exec, sys_active
► latest
version online