Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Status einer Anwendung prüfen (https://www.delphipraxis.net/29642-status-einer-anwendung-pruefen.html)

teekay 12. Sep 2004 14:22


Status einer Anwendung prüfen
 
Hallo Leute

ich hab mal eine Frage zu einem Beitrag von Luckie in der Code Libary http://www.delphipraxis.net/topic30942_pruefen+ob+eine+anwen ... aeuft.html

also folgendes das ganze funktioniert einwandfrei
THX so far

ich habe aber ein Problem : und zwar rufe ich eine Anwendung mit
ShellExecute(Application.Handle, 'open' ,PChar('InoDist.exe'), PChar('/cfg InoDist.ini'), PChar(DateiPfad), sw_ShowNormal);
auf das ganze funktioniert jedoch schliesst diese Anwendung automatisch also ohne Einwirken des Users
genau da liegt das Problem
Code:
while bClose = False do
  begin
    hProcess := GetProcessHandleFromID(GetProcessID('notepad.exe'));
    if hProcess = 0 then
      Label1.Caption := 'Notepad läuft nicht'
    else
      Label1.Caption := 'Notepad läuft';
    Application.HandleMessage;
  end;
in dieser Schleife wird ja permanent der Handle abgefragt jedoch führt das Automatische Schliessen nicht zu einer veränderung !!! erst wenn eine Aktion des users durchgeführt wird (mausklick etc...) wird der Handle aktualisiert und die Schleife gibt hProcess = 0 true aus

Zum Hintergrund :
ich habe vor das Virensignatur-Update von eTrust 7.0 zu automatisieren. Mein Programm öffnet die 'InoDist.exe'
automatisch wird eine DFÜ Verb hergestellt und 'InoDist.exe' prüft ob es updates gibt und lädt diese herunter. wenn das Programm fertig ist schliesst es sich selbst und das wollte ich mit Luckies Prozedur im Hintergrund abfangen, damit ich die DFÜ Verbindung trennen kann
Ziel : kosten bei Kunden sparen die noch per ISDN ins netz gehen


Gibt es vielleicht zusätzlich / alternativ die möglichkeit die ProcessID abzufragen ???

(provisorisch mache ich es mit einem simulierten Mausklick wobei dann hProcess = 0 true ausgibt
ist aber nicht so wirklich das gelbe vom ei)

mfG TeeKay

Niko 12. Sep 2004 16:06

Re: Status einer Anwendung prüfen
 
Hi,

vielleicht hilft dir das weiter.

Christian Seehase 12. Sep 2004 16:30

Re: Status einer Anwendung prüfen
 
Moin Teekay,

ich denke mal, dass für Deine Anforderung der Aufruf mit Hier im Forum suchenCreateProcess oder Hier im Forum suchenShellExecuteEx günstiger wäre.

teekay 13. Sep 2004 18:36

Re: Status einer Anwendung prüfen
 
Danke euch beiden

scheinbar war es für meine Anforderungen ausreichend mit ShellExecuteEx zu arbeiten das Beispiel :
Zitat:

{2}

function ShellExecute_AndWait(Operation, FileName, Parameter, Directory: string;
Show: Word; bWait: Boolean): Longint;
auf Nick's HinweisLink hat mir weitergeholfen da ich Parameter übergeben muss war es bei den anderen nicht soo leicht

die angesprochene Funktion passt wunderbar, übergibt parameter und erzeugt ein zuverlässiges ergebnis


thx 4 that

mfG TeeKay


p.s.Luckie's Beispiel kann ich dennoch empfehlen (funzt ohne zu ruckeln :P )


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 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