Speicherbedarf der aktuellen Anwendung ermitteln

Hallo,
ich benötige in meinem VB6-Programm (sagen wir mal PROG.EXE) eine Funktion, die den aktuellen eigenen Speicherbedarf überwacht.

Ich habe bereits unter http://allapi.mentalis.org/apilist/GetProcessMemoryI… und dem auf dieser Seite unter „Examples“ stehendem Link brauchbaren Code gefunden, um den Speicherbedarf der einzelnen Windows-Prozesse auszuwerten (die gleichen Angaben bekommt man übrigens auch mit dem Task-Manager). Dadurch kann ich prinzipiell sehen, wieviel Speicher meine PROG.EXE gerade benötigt.

Mein Problem ist jetzt nur, dass meine VB6-Anwendung PROG.EXE mehrmals läuft und daher auch mehrfach in der Prozess-Liste auftaucht (so wie z.B. auch die SVCHOST.EXE). Wenn ich aber den eigenen Speicherbedarf ermitteln will, muss ich wissen, welche Instanz von PROG.EXE ich gerade bin.

Kann mir jemand sagen, wie ich das herausfinden kann?

Ich habe schon versucht, über die VB-Funktionen App.hInstance und App.ThreadID einen Abgleich mit der von Windows gelieferten Prozess-ID vorzunehmen, habe da jedoch keine Deckung gefunden.

Gruß,
Mirko

Hallo,

Ich habe schon versucht, über die VB-Funktionen App.hInstance
und App.ThreadID einen Abgleich mit der von Windows
gelieferten Prozess-ID vorzunehmen, habe da jedoch keine
Deckung gefunden.

die eigene PID?

Option Explicit

Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long

Private Sub Command1\_Click()
 Dim pid As Long
 pid = GetCurrentProcessId()
 Command1.Caption = pid
End Sub

Gruß, Rainer

Ich habe schon versucht, über die VB-Funktionen App.hInstance
und App.ThreadID einen Abgleich mit der von Windows
gelieferten Prozess-ID vorzunehmen, habe da jedoch keine
Deckung gefunden.

die eigene PID?

Private Declare Function GetCurrentProcessId Lib „kernel32“ () As Long

Danke, genau das habe ich gesucht!

Das ist eigentlich so einfach, da hätte ich auch selbst drauf kommen können, aber manchmal sieht man den Baum vor lauter Wäldern nicht mehr :wink:

Gruß,
Mirko