vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Prozess übewachen 
Autor: Debus
Datum: 13.10.08 09:52

Hallo Dieter,

den Thread hatte ich auch schon gefunden. Nun habe ich hier aber das Problem, dass ich nicht die TaskID weiss, sondern nur den Namen der Anwendung. Ich hatte das ganze schonmal soweit vorangebracht. aber beenden kann ich die Anwendung immer noch nicht. Hast Du oder vielleicht auch jemand anders eine Idee???


Private Declare Function CreateToolhelpSnapshot Lib "kernel32" _
    Alias "CreateToolhelp32Snapshot" (ByVal lFlgas As Long, _
                                      ByVal lProcessID As Long) As Long
 
Private Declare Function ProcessFirst Lib "kernel32" _
    Alias "Process32First" (ByVal hSnapshot As Long, _
                            uProcess As PROCESSENTRY32) As Long
 
Private Declare Function ProcessNext Lib "kernel32" _
    Alias "Process32Next" (ByVal hSnapshot As Long, _
                           uProcess As PROCESSENTRY32) As Long
 
Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
 
Private Const TH32CS_SNAPPROCESS As Long = 2&
Private Const MAX_PATH As Long = 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
 
' Prüft, ob eine EXE-Datei bereits ausgeführt wird
Public Function IsEXERunning(ByVal sFilename As String) As Boolean
    Dim lSnapshot As Long
    Dim uProcess As PROCESSENTRY32
    Dim nResult As Long
 
    IsEXERunning = False
    ' "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
 
 
 
 
 
Private Sub Command1_Click()
 
    Dim AppRun As Boolean
 
    If IsEXERunning("winword.exe") Then AppRun = True 'z.B. WinWord
 
    If AppRun = True Then MsgBox "Anwendungen beenden!"
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozess übewachen1.088Debus11.10.08 21:32
Re: Prozess übewachen595Debus12.10.08 20:38
Re: Prozess übewachen603ModeratorDieter13.10.08 08:29
Re: Prozess übewachen598Debus13.10.08 09:52
Re: Prozess übewachen627Debus13.10.08 10:59

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel