AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit Schleifen

Ein Thema von KyroxX · begonnen am 22. Okt 2003 · letzter Beitrag vom 5. Jul 2006
Antwort Antwort
KyroxX

Registriert seit: 25. Aug 2003
Ort: Internet
52 Beiträge
 
#1

Probleme mit Schleifen

  Alt 22. Okt 2003, 14:12
Hallo,

habe folgenden, einfachen Quellcode zum senden von Shortcuts an nen andres Fenster:

Delphi-Quellcode:
ShellExecute(Handle,'open',PChar('c:\programm.exe'),nil,nil,SW_SHOWNORMAL);
sleep (50);
AppActivate('Fenstername');
SendKeys('%(AW)', TRUE);
application.Terminate;
Wie ihr seht starte ich das "programm.exe", warte 50 Milisekunden,
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...
Gr33z,
KyroxX
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Probleme mit Schleifen

  Alt 22. Okt 2003, 14:42
Hallo,
habe ich auch noch nicht machen müssen.
Aber das Stichwort lautet WaitForMultipleObjects.
Da würde ich beginnen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Probleme mit Schleifen

  Alt 22. Okt 2003, 14:56
Moin KyroxX,

Zitat von KyroxX:
p.s.: Code müsste eigentlich so ähnlich lauten:
while AppActivate('fenstername') do
begin
SendKeys('%(AW)', TRUE);
application.Terminate;
end;
stimmt.

So könnte es gehen:

Delphi-Quellcode:
while not AppActivate('fenstername') do
begin
  Delay(50); // Siehe Codelibrary
end;
SendKeys('%(AW)', TRUE);
application.Terminate;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
KyroxX

Registriert seit: 25. Aug 2003
Ort: Internet
52 Beiträge
 
#4

Re: Probleme mit Schleifen

  Alt 22. Okt 2003, 16:40
Danke für eure Hinweise !

Mit etwas Fruckelei und Glück isses mir so gelungen:
(ja nicht sehr sauber der code)

begin
Delphi-Quellcode:
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!
Is doch nett geregelt oder? *gg*

THX 4 help nochmals

Übrigens nutze ich die Unit "sndkey32.pas" einfach im Forum suchen, falls die jemand braucht...
Gr33z,
KyroxX
  Mit Zitat antworten Zitat
dac424

Registriert seit: 11. Dez 2004
21 Beiträge
 
#5

Re: Probleme mit Schleifen

  Alt 5. Jul 2006, 08:52
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.
mann fängt klein an
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz