vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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

Visual-Basic Einsteiger
Re: Handle einer exe 
Autor: ModeratorDieter (Moderator)
Datum: 29.07.02 19:36

Hi Tobiwan,

schau Dir mal folgenden Tipp an:
 Prüfen, ob eine EXE-Datei ausgeführt wird

Eine kleine Änderung und die Funktion gibt zunächst die TaskID (ProcessID) zurück:
If InStr(LCase$(uProcess.szexeFile), sFilename) > 0 Then
  <font color=green>' Jepp - EXE gefunden, jetzt ProcessID zurückgeben</font>
  IsEXERunning = uProcess.th32ProcessID
End If
Und nachfolgende Funktion ermittelt dann das Fensterhandle anhand der TaskID:
Private Declare Function GetWindowThreadProcessId Lib _
  "user32" (ByVal hwnd As Long, lpdwProcessId As Long) _
  As Long
 
Private Declare Function FindWindow Lib "user32" _
  Alias "FindWindowA" (ByVal lpClassName As String, _
  ByVal lpWindowName As String) As Long
 
Private Declare Function GetWindow Lib "user32" _
  (ByVal hwnd As Long, ByVal wCmd As Long) As Long
 
Private Declare Function GetParent Lib "user32" _
  (ByVal hwnd As Long) As Long
 
Private Const GW_HWNDNEXT = 2
<font color=green>' Ermittelt das Fensterhandle anhand einer Prozess-ID</font>
Private Function ProcID2hWnd(ByVal ProcID As Long) As Long
  <font color=green>' alle Fenster durchlaufen und nach Process-ID suchen</font>
  Dim lngHWnd As Long
  Dim lngProcTaskID As Long
 
  lngHWnd = FindWindow(vbNullString, vbNullString)
  Do While lngHWnd <> 0
 
    <font color=green>' Existiert kein Eltern-Fenster, dann ProcssID
    ' ermitteln und mit TaskID vergleichen</font>
    If GetParent(lngHWnd) = 0 Then
      GetWindowThreadProcessId lngHWnd, lngProcTaskID
 
      <font color=green>' Handelt es sich um die gesuchte TaskID?</font>
      If lngProcTaskID = ProcID Then
        <font color=green>' Fenster-Handle zurückgeben und Schleife
        ' verlassen!</font>
        ProcID2hWnd = lngHWnd
        Exit Do
      End If
 
    End If
 
    <font color=green>' Nächstes Fenster</font>
    lngHWnd = GetWindow(lngHWnd, GW_HWNDNEXT)
  Loop
End Function
Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Handle einer exe75Tobiwan29.07.02 16:22
Re: Handle einer exe313ModeratorDieter29.07.02 19:36
Re: Handle einer exe282unbekannt29.07.02 19:52
Jepp - als rein mit (oT)298ModeratorDieter29.07.02 20:00
Schon 'drinn *grinz* (oT)272unbekannt29.07.02 20:09
sssssssssssst ... Lordchen ist schneller als DSL (o.w.)277Elwood29.07.02 20:11
Mhm, nicht ganz 279unbekannt29.07.02 21:13
Vielen Dank Jungs (oT)55Tobiwan30.07.02 11:11

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