Rubrik: Windows/System | 22.03.05 |
GetCurrentProcessId-Funktion Diese Funktion ermittelt die Prozess-ID des Programms, das diese Funktion aufruft. | ||
Betriebssystem: Win95, Win98, WinNT 3.1, Win2000, WinME | Views: 15.759 |
Deklaration:
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Beschreibung:
Diese Funktion ermittelt die Prozess-ID des Programms, das diese Funktion aufruft.
Parameter:
keine |
Rückgabewert:
Die Rückgabe ist die Prozess-ID des aktuellen Prozesses.
Beispiel:
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32.dll" ( _ ByVal dwFlags As Long, _ ByVal th32ProcessID As Long) As Long Private Declare Function CloseHandle Lib "kernel32.dll" ( _ ByVal hObject As Long) As Long Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long Private Declare Function Thread32First Lib "kernel32.dll" ( _ ByVal hSnapshot As Long, _ lppe As THREADENTRY32) As Long Private Declare Function Thread32Next Lib "kernel32.dll" ( _ ByVal hSnapshot As Long, _ lppe As THREADENTRY32) As Long Private Type THREADENTRY32 dwSize As Long cntUsage As Long th32ThreadID As Long th32OwnerProcessID As Long tpBasePri As Long tpDeltaPri As Long dwFlags As Long End Type ' CreateToolhelp32Snapshot dwFlags-Konstanten Private Const TH32CS_INHERIT = &H80000000 Private Const TH32CS_SNAPALL = &HF Private Const TH32CS_SNAPHEAPLIST = &H1 Private Const TH32CS_SNAPPROCESS = &H2 Private Const TH32CS_SNAPTHREAD = &H4 Private Const TH32CS_SNAPMODULE = &H8
' Alle Threads des eigenen Prozesses ermitteln Private Sub Command1_Click() Dim Retval As Long, ThreadInfo As THREADENTRY32 Dim hSnap As Long, PID As Long ' Prozess-ID des eigenen Programms ermitteln PID = GetCurrentProcessId() ' Schnappschuss des Systems machen hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, PID) ' Größe der Struktur setzen ThreadInfo.dwSize = Len(ThreadInfo) ' Ersten Thread ermitteln Retval = Thread32First(hSnap, ThreadInfo) If Retval <= 0 Then Exit Sub ' Alle weiteren Threads enumerieren Do With ThreadInfo If PID = .th32OwnerProcessID Then Debug.Print "Thread: " & .th32ThreadID & vbTab & _ "Proirität: " & .tpBasePri End If End With Loop Until Thread32Next(hSnap, ThreadInfo) = 0 ' Schnappschuss zerstören Call CloseHandle(hSnap) End Sub