prozesse in windows zählen
-
ich hab da ein problem, nämlich will wenn mehrere mal das selbe programm auf dem rechner läuft zählen wie oft der prozess unter windows läuft damit ich im programm die anzahl angeben kann.
kennt jemand eine lösung??
danke
-
schau dir mal folgende funktionen genauer an, damit kann man alle processe enumerieren, die auf einem system laufen - und einige infos gibts auch noch dazu.
CreateToolhelp32Snapshot();
Process32Fist();
Process32Next();so far ... rocknix ///
-
CreateToolhelp32Snapshot();
geht das auch unter nt oder nur 2000??
martin
-
Snapshots funktionieren auf allen Versionen von Windows ... Nur die PS API zum enumerieren von Prozessen läuft auf NT basierten Systemen
btw. 2000/XP sind beide auf NT aufgebaut und haben höchstens 1 oder 2 Funktionen die ein anderes OS nicht hat
-
nee auf der homepage steht das CreateToolhelp32Snapshot nicht zu nt kompatibel ist, gibt es denn ne andere möglichkeit das ich rausbekomme wie oft meine applikation schon auf dem rechner läuft und das auf allen betriebssystemen?
also 2000, nt, 98 und xp??martin
-
Wenn es dir nur um dein eigenes Programm geht hilft dir evtl der FAQ-Beitrag "doppeltes öffnen eines programmes vermeiden"
-
irgendwie versteh ich das mit CreateSemaphore nicht!
wie kjann ich denn mit der funktion die anzahl meiner geöffneten programme zählen??danke
-
oder mit findwindow?
-
falls du nur deine anwendung checken willst, kannst du es wie folgt machen.
zu beginn deiner app:
// check for running instance HANDLE hMutex = OpenMutex( MUTEX_ALL_ACCESS, false, "myAppMutex"); if( hMutex) { //instance running MessageBox( NULL, "app allready running !", "myApp",MB_OK|MB_ICONEXCLAMATION); return 0; } hMutex = CreateMutex( NULL, false, "myAppMutex");
und am ende der app:
CloseHandle(hMutex)
-
und wie zähl ich dann die anzahl??
danke
-