Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ProcessID ( simple viewer )

[es] :: C/C++ programiranje :: ProcessID ( simple viewer )

[ Pregleda: 2362 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

`and

Član broj: 32490
Poruke: 776
*.vdial.verat.net

Sajt: www.bitbyterz.org


Profil

icon ProcessID ( simple viewer )22.09.2004. u 18:52 - pre 238 meseci
Jel moze neko da mi napise neki source za C\C++ ... koji ce da ispisuje ProcessID svih aktivnih programa. Ili bar da mi kaze kako da to uradim ... koje API da koristim i kako ... !?

tnx
 
Odgovor na temu

Hallman
Bojan Sala
Beograd, V. Banja

Član broj: 17191
Poruke: 24
*.nat-pool.bgd.sbb.co.yu

Sajt: www.univerzalsoft.com/hs/..


Profil

icon Re: ProcessID ( simple viewer )23.09.2004. u 21:21 - pre 238 meseci
Pogledaj artikal "CreateToolhelp32Snapshot" u MSDN dokumentaciji ili na sajtu, to je deo Tool Help artikla iz Win32 SDK sekcije, taj artikal pruza vecinu apija za procese.
Taj api nije dobro podrzan za WinNT, ali i dalje lista ID-ove aktivnih procesa, sto je tebi dovoljno za vecinu stvari.

 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.smin.sezampro.yu.



Profil

icon Re: ProcessID ( simple viewer )26.09.2004. u 00:26 - pre 238 meseci
Za NT seriju (pri prevodjenju je potrebno dodati psapi.lib import biblioteku):
Code:

#include <windows.h>
#include <stdio.h>
#include <psapi.h>

int main() {
   DWORD pids[1024], priv, brpids, i;

   if (!EnumProcesses(pids, sizeof(pids), &priv))
      return 1;

   brpids = priv/sizeof(DWORD);
   for (i = 0; i < brpids; i++)
      printf("%4d\n", pids[i]);

   return 0;
}
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
*.verat.net

Sajt: www.bitbyterz.org


Profil

icon Re: ProcessID ( simple viewer )26.09.2004. u 01:52 - pre 238 meseci
tnx
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
*.vdial.verat.net

Sajt: www.bitbyterz.org


Profil

icon Re: ProcessID ( simple viewer )28.09.2004. u 13:41 - pre 238 meseci

@passenger
Jel mozes da dodas u taj kod jos i da ispisuje pored PID-a ime procesa i path ?

tnx
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
*.vdial.verat.net

Sajt: www.bitbyterz.org


Profil

icon Re: ProcessID ( simple viewer )29.09.2004. u 11:05 - pre 238 meseci
Dosao sam do ovog koda ( dole ) ali bi bilo lepo ako bi neko dodao jos samo da ispisuje putanju do programa . tnx

#include <windows.h>
#include <stdio.h>
#include <psapi.h>


void PrintProcessNameAndID( DWORD processID )
{
char szProcessName[MAX_PATH] = "unknown";




HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );



if (NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;



if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod),
&cbNeeded) )
{
GetModuleBaseName( hProcess, hMod, szProcessName,
sizeof(szProcessName) );

}
else return;
}
else return;


printf( "%s (Process ID: %u)\n", szProcessName, processID );

CloseHandle( hProcess );
}



void main( )
{


DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;

if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;



cProcesses = cbNeeded / sizeof(DWORD);



for ( i = 0; i < cProcesses; i++ )
PrintProcessNameAndID( aProcesses );


}


 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.smin.sezampro.yu.



Profil

icon Re: ProcessID ( simple viewer )29.09.2004. u 18:35 - pre 238 meseci
Citat:
`and: @passenger
Jel mozes da dodas u taj kod jos i da ispisuje pored PID-a ime procesa i path ?

tnx

Odgovor si verovatno mogao da pronadjes malo pazljivijim citanjem MSDN dokumentacije. Vidim da si vec saznao kako da ispisujes ime procesa. Za dobijanje pune putanje do programa ciji je proces (pid), mogao bi da koristis slicnu funkciju, s tim da umesto "GetModuleBaseName()" pozoves npr. "GetModuleFileNameEx()" funkciju.

Code:

void PrintPIDPath(DWORD pid)
{
   char szProcessPath[MAX_PATH];

   HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | 
                                  PROCESS_VM_READ, FALSE, pid );

   if ( hProcess )
   {
      HMODULE hMod;
      DWORD cbNeeded;

      if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), 
                               &cbNeeded) )
         GetModuleFileNameEx(hProcess, hMod,
                             szProcessPath, sizeof(szProcessPath));
   }

   printf( " %s\n", szProcessPath);

   CloseHandle( hProcess );
}


P.S. Bilo bi pozeljno da u buducim poruka kood postavljas izmedju "code" tagova, radi bolje preglednosti.
 
Odgovor na temu

`and

Član broj: 32490
Poruke: 776
217.26.66.*

Sajt: www.bitbyterz.org


Profil

icon Re: ProcessID ( simple viewer )30.09.2004. u 00:48 - pre 238 meseci
tnx

ps: potrudicu se
 
Odgovor na temu

[es] :: C/C++ programiranje :: ProcessID ( simple viewer )

[ Pregleda: 2362 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.