Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Prüfen ob ein Programm noch aktiv ist.

Prüfen ob ein Programm noch aktiv ist.
03.01.2006 15:27:40
xlforum
Hallöchen zusammen,
habe mal wieder eine Frage.
Ich habe mit ShellID = Shell(blablabla....) ein Programm gestartet und auch die PID in der Variable ShellID.
Das gestartete Programm wird irgendwann (hoffentlich ;-) von einem User per OK beendet, wie kann ich jetzt prüfen ob das Programm noch aktiv ist ?
Danke für eure Hilfe.
Grüße
Holger

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob ein Programm noch aktiv ist.
03.01.2006 23:35:47
Josef
Hallo Holger!
Beispiel!
' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
'Quelle -ActiveVB.de

Private Declare Function CloseHandle Lib "kernel32" (ByVal _
  hObject As Long) As Long

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
  dwDesiredAccess As Long, ByVal bInheritHandle As _
  Long, ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
  (ByVal hProcess As Long, lpExitCode As Long) As Long



Const STILL_ACTIVE = &H103
Const PROCESS_ALL_ACCESS = &H1F0FFF

Dim TaskID&

Private Function IsActive() As Boolean
Dim Handle&, ExitCode&

Handle = OpenProcess(PROCESS_ALL_ACCESS, False, TaskID)
Call GetExitCodeProcess(Handle, ExitCode)
Call CloseHandle(Handle)

IsActive = IIf(ExitCode = STILL_ACTIVE, True, False)
End Function


Private Sub start()

TaskID = Shell("notepad.exe", vbNormalFocus)

End Sub


Private Sub test()

If IsActive Then
  MsgBox "Anwendung Läuft noch!"
Else
  MsgBox "Anwendung Läuft nicht mehr!"
End If

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Prüfen ob ein Programm noch aktiv ist.
04.01.2006 09:48:00
Holger
Hi Sepp,
Danke für Deine Antwort einen änhlichen Ansatz mit OpenProcess habe ich auch schon probiert hat bei mir aber leider nicht so funktioniert wie ich mir das vorgestellt habe.
Ich habe mittlerweile eine Lösung gefunden die für mich funktioniert.
Vielen Dank.
Gruß
Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige