برنامه شمارش تعداد پروسه های در حال اجرا

sara1391

عضو جدید
سلام
من سورس کد مربوط به خواندن processes که در task manager وجود دارن ,تابعی رو می خوام که تعداد فرایند های در حال اجرارو بشماره اگه کمکم کنید خیلی ممنون می شم.:smile:
 

H.r.Ghanbari

عضو جدید
Win32 Get Process List

Win32 Get Process List

سلام دوست عزیز
اول يه پروژه
Win32 Console Application
ايجاد کنيد:
به اين هدر ها نياز داريد:
کد:
[LEFT]#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
[/LEFT]
به handle ها و متغییر زير نياز داريد:
کد:
[LEFT]  HANDLE hProcessSnap; 
  HANDLE hProcess;
  PROCESSENTRY32 pe32;
[/LEFT]
يه snapshot با استفاده از تابع زير از فرايند هاي خود برداريد
کد:
[LEFT] hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if( hProcessSnap == INVALID_HANDLE_VALUE )
  {
    //Error
    return( FALSE );
  }
[/LEFT]
قبل از اينکه از متغيير pe32 استفاده کنيد سايز اونو مشخص کنيد.
کد:
[LEFT]  pe32.dwSize = sizeof( PROCESSENTRY32 );
[/LEFT]
حلا اطلاعات اولين فرايند رو بخونيداگه تونستيد بقيه رو هم مي تونيد اگه نتونستيد بقيه رو هم نمي تونيد و بايد دوباره retry کنيد.
کد:
[LEFT]  if( !Process32First( hProcessSnap, &pe32 ) )
  {
    // Error
    CloseHandle( hProcessSnap );          // clean the snapshot object
    return( FALSE );
  }
[/LEFT]
حالا مي تونيددر بين پروسس هايي که ازشون snapshot پرفتيد حرکت کنيد و اسم هاشون و بیرون بکشید
کد:
[LEFT]   do
  {
    _tprintf( TEXT("\n\rPROCESS NAME:  %s"), pe32.szExeFile );
  } while( Process32Next( hProcessSnap, &pe32 ) );
[/LEFT]
شي snapshot را ببنديد
کد:
[LEFT]   CloseHandle( hProcessSnap );
[/LEFT]
;)
 

Similar threads

بالا