| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
MPSTorak 19.03.02 22:13 MiniPS - PS klooni W2K:lle.
////////////////////////////////////////////////////////////////////////// // MiniPS 1.0 // // Unix:in PS komennon minimaalinen klooni, joka toimii vain W2K:ssa. // MPS näyttää listan niistä ohjelmista joiden suoritus on menossa tai // keskeytettynä. Näyttää ohjelman PID numeron ja ohjelman polkuineen. // // Testattu: BCC 5.5.1 ja LCC-Win32: Jan 30 2002 ////////////////////////////////////////////////////////////////////////// #include <windows.h> // Yleiset Windows tavarat #include <tlhelp32.h> // CreateToolhelp32Snapshot() #include <psapi.h> // GetModuleFileNameEx() #include <stdio.h> // printf int main(void) { HANDLE hSnapShot; PROCESSENTRY32 pEntry; CHAR szFileName[MAX_PATH]; BOOL hRes; HMODULE hModule; HANDLE hProcess; HINSTANCE hLib; DWORD dwSize; // Otetaan kuva koneen prosesseista hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0); if(hSnapShot == NULL) { fprintf(stderr, "MPS - Virhe: Tietoja ohjelmista ei saatu!"); return 1; } pEntry.dwSize = sizeof(pEntry); // Etsitään ensimmäinen ohjelma if(FALSE == Process32First(hSnapShot, &pEntry)) { CloseHandle(hSnapShot); fprintf(stderr,"MPS - Virhe: Ohjelmia ei löytynyt!"); return 2; } do{ // Halutaan kysyä prosessin tietoja hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pEntry.th32ProcessID); if(hProcess) { // Kysytaan prosessin kahva if(EnumProcessModules(hProcess, &hModule, sizeof(hModule), &dwSize)) { // Kysytään nimi if(GetModuleFileNameEx(hProcess, hModule, szFileName, MAX_PATH)) { CloseHandle(hProcess); printf("%d\t%s\n",pEntry.th32ProcessID, szFileName); } } } } while(Process32Next (hSnapShot,&pEntry)); CloseHandle(hSnapShot); // Siivotaan return 0; } |
![]() Haku
|