Prozess id

Hallo,

ich brauche von einem Fenster die prozess id.
dazu habe ich folgenden Code:

 Private Shared Function GetWindowThreadProcessId(ByVal handle As IntPtr, ByRef processId As Int32) As Int32
 End Function
 Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Int32
 End Function

 Private Sub Form1\_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 Dim hwnd
 Dim procid As Int32
 hwnd = FindWindow(vbNullString, "Element Client")
 GetWindowThreadProcessId(hwnd, procid)
 MsgBox(procid)
 End Sub

Das Fenster heißt, wie man dem Qellcode entnehmen kann „Element Client“.
Beim Ausführen kommt dann aber immer die Fehlermeldung „Die angegebene Umwandlung ist ungültig.“

Brauche da mal bitte Hilfe.

MfG und ty im Voraus

haithun

Bitte die zeile, in der der Fehler auftritt (Debuggen!).
Was mir so auffällt:
hwnd ist doch kein Int32 sondern ein IntPtr, denn das gibt FindWindow zurück. Siehe: http://pinvoke.net/default.aspx/user32.FindWindow
Wenn du nur nach dem Namen suchen willst, kannst du diese Funktion probieren:

' Deklaration (ungefähr):
FindWindow(Dim zeroOnly As IntPtr, Dim lpWindowTitle As String) As IntPtr

' Aufruf:
Dim hwnd As IntPtr
hwnd = FindWindow(IntPtr.Zero, "MyWindowTitle")

Grüße, JasonDelife.

danke es lag am falschen datentyp.
ich prauche allerdings das handle.
dadurch reicht findwindow nicht aus.

MfG und nochmal ty

haithun