AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Abfrage, ob ein gestartetes Programm noch läuft
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage, ob ein gestartetes Programm noch läuft

Ein Thema von ascotlx · begonnen am 12. Okt 2007 · letzter Beitrag vom 12. Okt 2007
Antwort Antwort
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#1

Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 13:24
Moin moin,

ich habe ein Programm geschrieben, das in mehreren Schritten Software installiert.
Um die externen Setup Programme zu starten benutzte ich die Funktion RunAndWaitShell.
ShellExecute, and Wait

Nach dem Start der Setup Programme setzte ich den "Beenden" Button meiner CD-Oberfläche auf bBeenden.Enabled:=false; und nun meine Frage:
Wie kann ich es nun anstellen, dass ich mitbekomme, wenn die Installation abgebrochen wird ?? dann soll sich auch meine Applikation mit einer Meldung verabschieden.

Kann mir jemand eine Hilfestellung geben ??

Besten Dank

ascotlx
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#2

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:01
Wenn du nach einer best. Exe wie um Taskmanager unter "Prozesse" gucken willst, dann geh mal auf www.swissdelphicenter.ch und dort auf "Programmiertipps" --> "Suche". Dort findest du eine tolle Funktion zu diesem Thema. Alternativ mal die DP-Suche bemühen, ich hatte eine ähnliche Frage schonmal gestellt.
Jonas
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:18
huhu!

mit der funktion hier kannst du schauen ob eine bestimmte exe noch läuft...

Delphi-Quellcode:
function GetProcessID(Exename: string): DWORD;
var
  hProcSnap: THandle;
  pe32: TProcessEntry32;
begin
  result := 0;
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if hProcSnap <> INVALID_HANDLE_VALUE then
  begin
    pe32.dwSize := SizeOf(ProcessEntry32);
    if Process32First(hProcSnap, pe32) = true then
    begin
      while Process32Next(hProcSnap, pe32) = true do
      begin
        if pos(Exename, pe32.szExeFile) <> 0 then
          result := pe32.th32ProcessID;
      end;
    end;
    CloseHandle(hProcSnap);
  end;
end;
du könntest also mit:

Delphi-Quellcode:
//provisorisch...
self.hide;
repeat
  sleep(100);
until (GetProcessID('setup.exe'));
self.show;
so lange dich verstecken bis das setup gekillt/beendet wurde...

gruß
reli
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:20
Aber RunAndWaitShell wartet doch schon, bis der Prozess beendet wurde.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#5

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:35
Zitat von Apollonius:
Aber RunAndWaitShell wartet doch schon, bis der Prozess beendet wurde.
wahrscheinlich macht RunAndWaitShell das, aber woran mache ich dann das "Wiederanschalten" meines
"Beenden- Buttons" fest ??
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:38
sind die externen setupprogramme von dir?
vllt kannst du nen exitcode auswerten, wie weiß ich auch nicht :/
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 14:42
Wann deaktivierst du den Button denn? Zeig einfach mal die gesamte Prozedur, in der RunAndWaitShell aufgerufen wird.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#8

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 15:08
Du könntest nach dem Beenden des Installationsprozesses überprüfen, ob die Installation erfolgreich war, z.B. einen entsprechenden Registry-Schlüssel auslesen, der während der Installation geschrieben wird.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#9

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 15:12
@ dominikkv
moin dominik, ... die Setup Routine ist nicht von mir ...

Zitat von Apollonius:
Wann deaktivierst du den Button denn? Zeig einfach mal die gesamte Prozedur, in der RunAndWaitShell aufgerufen wird.
Moin Apollonius,
gerne doch .... und wenn ich des öfteren mal debuggen und LESEN würde, ginge mir so manchesmal eine Lampe auf .
Sorry ... der Fehler ist gefunden... ich habe den Button einfach nicht zurückgesetzt .... Hier aber trotzdem die (korrigierte) Prozedur (Zeile 21-24 sind neu) ...

Delphi-Quellcode:
// *****************************************************************************
// Installation der SSC
procedure RO1SSC;
var FileP, ssc_dir, Param_ssc: string;
    err: Integer;
begin
 bKonfiguration.Enabled:=false;
 bBeenden.Enabled:=false;
 Label9.Visible:=false;
 Label7.Left:=130;
 Label7.Font.Color:=clRed;
 Label7.Caption:='Bitte warten ... Bearbeitung läuft ...';

 FileP := ExtractFilePath(Application.ExeName);

 Param_ssc:='/s /v"/qb REBOOT=force"';
 err:=Form3.RunAndWaitShell(FileP+'SSC\'+'setup.exe',Param_ssc,ssc_dir,SW_SHOW);
 if (err >0) and (err < 32) then
  Showmessage(Form3.ShellExecuteErrMessage(Err));

 if (err >32) then
  Showmessage(Form3.ShellExecuteErrMessage(Err)+#13#10+'Die Installation wird beendet.');

 bBeenden.Enabled:=true;
end;
schönes Wochenende ... und nochmal danke (mache gleich noch einen "neuen" auf ...)
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Abfrage, ob ein gestartetes Programm noch läuft

  Alt 12. Okt 2007, 15:58
Zitat von ascotlx:
Delphi-Quellcode:
if (err >0) and (err < 32) then
  Showmessage(Form3.ShellExecuteErrMessage(Err));

if (err >32) then
Und was machst Du, wenn err = 32?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 05:24 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