![]() |
Probleme mit Schleifen
Hallo,
habe folgenden, einfachen Quellcode zum senden von Shortcuts an nen andres Fenster:
Delphi-Quellcode:
Wie ihr seht starte ich das "programm.exe", warte 50 Milisekunden,
ShellExecute(Handle,'open',PChar('c:\programm.exe'),nil,nil,SW_SHOWNORMAL);
sleep (50); AppActivate('Fenstername'); SendKeys('%(AW)', TRUE); application.Terminate; und sende dann die Tastenkombi "Alt+A+W". ('%(AW)') Die Kombi wird an das Angesprochene fenster gesendet, welches mit der funktion "AppActivate('Fenstername'); ermittelt wird. Dann beendet es sich von selbst. Alles soweit ok! Aber jetzt muss ich eine Endlosschleife da rein bringen die alle 50 Milisek. nach einem Titel sucht und währenddessen durchgehend "Warte auf Programm" anzeigt. Wenn der richtige Titel dann gefunden ist, soll das Programm den Shortcut senden, und sich dann beenden. Sollte ja eigentlich kein problem sein mit ner while Schleife oder so - aber ich hab irgendwie keine erfolge damit ^^ Kann mir einer von euch vielleicht helfen? Is irgendwie wichtig das ich das hinbekomm *gg* Thx im vorraus! p.s.: Code müsste eigentlich so ähnlich lauten: while AppActivate('fenstername') do begin SendKeys('%(AW)', TRUE); application.Terminate; end; aber wie mach ich es das er alle 50 milisek. das macht, und wie zeige ich dann die meldung "warte auf Programm" an? pp.s.: Die AppActivate funktion hat auch ein result, also wenn result = false ist, heisst das der er das Fenster nicht gefunden hat -.- Die funktion liegt aber in einer andren unit... |
Re: Probleme mit Schleifen
Hallo,
habe ich auch noch nicht machen müssen. Aber das Stichwort lautet WaitForMultipleObjects. Da würde ich beginnen. |
Re: Probleme mit Schleifen
Moin KyroxX,
Zitat:
So könnte es gehen:
Delphi-Quellcode:
while not AppActivate('fenstername') do
begin Delay(50); // Siehe Codelibrary end; SendKeys('%(AW)', TRUE); application.Terminate; |
Re: Probleme mit Schleifen
Danke für eure Hinweise ! ;)
Mit etwas Fruckelei und Glück isses mir so gelungen: (ja nicht sehr sauber der code) begin
Delphi-Quellcode:
Is doch nett geregelt oder? *gg*
ShellExecute(Handle,'open',PChar('programmdatei.exe'),nil,nil,SW_SHOWNORMAL); //startet Programm
while not AppActivate('Fenstername') do // wenn er Fensternamen NICHT findet.. begin sleep(50); // soll er immer wieder 50 milisek warten! end; AppActivate('Fenstername'); //findet den Fensternamen sleep (20); //wartet 20 milisek. SendKeys('%(SA)', TRUE); //sendet dem Fenster den Shortcut Alt+S+A sleep (30000); //wartet 30 sek AppActivate('Fenstername'); //sucht nochmals nach dem Fensternamen sleep (50); //wartet nochmal 50 milisek. SendKeys('%(SA)', TRUE); //sendet nochmals Keys application.Terminate; //und nach der Sicherheitsprüfung beenden! THX 4 help nochmals :mrgreen: Übrigens nutze ich die Unit "sndkey32.pas" einfach im Forum suchen, falls die jemand braucht... |
Re: Probleme mit Schleifen
das konte ich gut brauchen nur wie mache ich das die Taste gedrückt bleibt bis das ein anderer befehl sie wieder auflöst sprich los läst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 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 by Thomas Breitkreuz