AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Warten, solange anderes Fenster noch aktiv...
Thema durchsuchen
Ansicht
Themen-Optionen

Warten, solange anderes Fenster noch aktiv...

Ein Thema von Kadah_F · begonnen am 18. Mai 2006 · letzter Beitrag vom 18. Mai 2006
Antwort Antwort
Kadah_F

Registriert seit: 18. Mai 2006
Ort: Essen
3 Beiträge
 
#1

Warten, solange anderes Fenster noch aktiv...

  Alt 18. Mai 2006, 15:33
... Hallo alle zusammen, ich bin neu und bräuchte mal einen Rat.

Also:

Ich hab ein Programm in Delphi geschrieben... Dieses Programm führt auf Knopfdruck ein externes Programm (so eine Art DOS-basiertes WINZIP, welches Dateien komprimiert) aus.
Nachdem diese externe Datei ihren Zweck erfüllt und die gewünschte Datei komprimiert hat, soll diese komprimierte Datei in einen anderen Ordner verschoben werden.

Ich habe nun folgendes Problem:
Die Datei soll erst dann verschoben werden, wenn die externe Datei ihre Arbeit getan hat und sich selbst schließt.

Delphi-Quellcode:
begin
  // Öffnet externes Programm mit Startparametern
 ShellExec(Handle,'open',EXT_EXEC.EXE,'-9 "' + E_SelectFile.Text + '"','',SW_SHOWMINNOACTIVE);
  // UPX'te Datei wird in angegebenen Ornder verschoben
 MoveFile(PChar(E_SelectFile.Text),PChar(E_Destination.Text));
end;
Vor dem MoveFile sollte also ein Befehl kommen, welches mein Programm abfragen lässt, ob das externe Programm 'EXT_EXEC.EXE' noch läuft...

Wie kann ich das machen?

Ich bin für jede Anwort sehr dankbar.

MfG
Feraz
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Warten, solange anderes Fenster noch aktiv...

  Alt 18. Mai 2006, 15:49
versuch mal ShellExecuteEx bei MSDN
Diese Funktion wartet auf Beendigung des aufgerufenen Programmes.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#3

Re: Warten, solange anderes Fenster noch aktiv...

  Alt 18. Mai 2006, 15:54
Oder schon aufbereitet

Public Domain heißt, daß keinerlei Angabe über den Ursprung notwendig ist. Will heißen, daß es so benutzt werden kann, als hättest du es selber geschrieben

ShellExecuteAndWaitA ist die ANSI-Variante, ShellExecuteAndWaitW die Unicode-Variante. Meistens würdest du sicher die ANSI-Variante benutzen: das nur weil, weil es bei dieser Frage schon früher Verwirrung gab

Wie man sehen kann, fast 3 Jahre alt und noch immer aktuell
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Warten, solange anderes Fenster noch aktiv...

  Alt 18. Mai 2006, 16:23
Zitat von Olli:
... ShellExecuteAndWait...
das klingt für mich irgendwie nach JEDI-Komponenten...
Dort gibt es diese Funktion nämlich auch.

Nur mag ich die JEDI's nicht, weil man immer die kompletten JEDI installieren muss um einige Funktionen oder Komponenten zu benutzen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: Warten, solange anderes Fenster noch aktiv...

  Alt 18. Mai 2006, 16:43
Hast du dir den Link überhaupt angeschaut? ... er führt auf meine private Webseite!
Glaubst du, ich würde es wagen bei den JEDIs zu klauen (also MPL-Code) und es danach unter PUBLIC DOMAIN zu stellen?

Vielleicht haben die ihren Code ja sogar von mir, ist schließlich PD und ich selber arbeite ja auch an verschiedenen JEDI-Projekten mit.

Nachtrag: Hier zum Vergleich eine Version der JclShell.pas. Nun überzeugt? Wie man sieht, heißt die Funktion bei den JEDIs ShellExecAndWait und unterscheidet sich doch in einigen Details von meiner Implementierung. Bspw. habe ich es so gemacht, daß man allein ShellExecuteAndWaitA/W() aufrufen kann und dennoch wahlweise die normale ShellExecute-Funktionalität oder die mit dem Warten bekommt.

Übrigens bin ich auch schon länger hier in diesem Forum aktiv, als es mein Anmeldedatum verrät: Hier im Forum suchenShellExecuteAndWait (oder direkt), die Forensuche hätte dir also durchaus weitergeholfen.
  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 19:27 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