Autor Thema: Programm schließen (Task-Manager) über API  (Gelesen 985 mal)

Offline Scheithauer

  • Frischling
  • *
  • Beiträge: 2
  • Ich liebe dieses Forum!
Programm schließen (Task-Manager) über API
« am: 10.03.03 - 14:37:00 »
Dies habe ich bisher! Hier wird aber nur eine MSGBOX ausgegeben, wenn z.B. EXCEL  noch geöffnet ist. Ich möchte es aber schließen!


(Declarations)

Const MAX_PATH = 260
Private Type PROCESSENTRY32
   dwSize As Long
   cntUsage As Long
   th32ProcessID As Long
   th32DefaultHeapID As Long
   th32ModuleID As Long
   cntThreads As Long
   th32ParentProcessID As Long
   pcPriClassBase As Long
   dwflags As Long
   szexeFile As String * MAX_PATH
End Type

Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" ( Byval lFlgas As Long, Byval lProcessID As Long)  As Long

Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (Byval hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (Byval hSnapshot As Long, uProcess As PROCESSENTRY32) As Long

Declare Sub CloseHandle Lib "Kernel32" ( Byval hPass As Long)

Const TH32CS_SNAPPROCESS  = 2&

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Function IsEXERunning(Byval sFilename As String) As Long
   
   Dim lSnapshot As Long
   Dim uProcess As PROCESSENTRY32
   Dim nResult As Long
   
  ' "Snapshot" des aktuellen Prozess ermitteln
   lSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
   If lSnapshot <> 0 Then
      uProcess.dwSize = Len(uProcess)
      
    ' Ersten Prozess ermitteln
      nResult = ProcessFirst(lSnapshot, uProcess)
      
      Do Until nResult = 0
      ' Prozessliste durchlaufen
         If Instr(Lcase$(uProcess.szexeFile), Lcase$(sFilename)) > 0 Then
        ' Jepp - EXE gefunden
            IsEXERunning = True
            Exit Do
         End If
         
      ' nächster Prozess
         nResult = ProcessNext(lSnapshot, uProcess)
      Loop
      
    ' Handle schliessen
      CloseHandle lSnapshot
   End If
End Function




%REM
Beispiel in den ausführenden Script eintragen:

If IsEXERunning("EXCEL.exe") Then
      Msgbox "Bitte schliessen Sie die Excel  Anwendungen!."
   End If
%END REM

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:Programm schließen (Task-Manager) über API
« Antwort #1 am: 10.03.03 - 15:03:58 »
Inder angehängten Datei findest du alles, was du brauchst.

Läuft unter NT und W2K. Möglicherweise benötigst du noch die Datei "psapi.dll" Findest du auf meiner HP unter http://www.eknori.de/tips/nkill.htm

eknori
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Scheithauer

  • Frischling
  • *
  • Beiträge: 2
  • Ich liebe dieses Forum!
Re:Programm schließen (Task-Manager) über API
« Antwort #2 am: 11.03.03 - 13:02:34 »
Vielen Dank! Werde mich durch kämpfen! ;D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz