| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Prosessilistaus WindowsilleChrysalid 18.04.06 18:38 Esimerkki CreateToolhelp32SnapShot - funktion käytöstä prosessien ja niiden ID-tunnuksien listaamiseen
/* jpid.c (C) Jaakko Hartikainen a.k.a Chrysalid (jaakko@ritke.fi), koodia saa käyttää vapaasti. Ohjelma demonstroi ToolHelp Snapshotin käyttöä Windowsissa (Win95:stä ylöspäin) Ilman argumentteja listataan kaikki prosessit pid eli Process ID - numeroineen. Jos ohjelma käynnistetään kill - parametrilla, ohjelma yrittää tappaa kyseisen prosessin. jpid kill <pid> Lisätietoja: http://msdn.microsoft.com/library/en-us/perfmon/base/snapshots_of_the_system.asp */ #include<windows.h> #include<Tlhelp32.h> void ListProcs() { BOOL ret = TRUE; PROCESSENTRY32 pentry; HANDLE snap; snap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if (snap == INVALID_HANDLE_VALUE) { printf("Error in CreateToolhelp32Snapshot\n"); exit(1); } pentry.dwSize = sizeof(PROCESSENTRY32); Process32First(snap,&pentry); printf("%s\t\t%d\n",pentry.szExeFile,pentry.th32ProcessID); while (ret == TRUE) { pentry.dwSize = sizeof(PROCESSENTRY32); ret = Process32Next(snap,&pentry); printf("%s\t\t%d\n",pentry.szExeFile,pentry.th32ProcessID); } } int main(int argc, char **argv) { if (argc < 2) { printf("jpid: No arguments given, displaying all processes with their process ID's.\n\n"); printf("PROCESS NAME\t\tPID\n"); ListProcs(); } else { if (strcmp("kill",argv[1]) == 0) { HANDLE h; int pid = atoi(argv[2]); printf("jpid: attempting to kill pid %d...",pid); h = OpenProcess(PROCESS_TERMINATE,0,(DWORD)pid); if (h != NULL){ TerminateProcess(h,0); printf(" success."); } } } return 0; } editoitu: 21:43 18.4.06 Torak 21:42 18.4.06 Tuli 02 tehtyä tämmöinen vastaanvanlainen http://mureakuha.com/koodikirjasto/89 Chrysalid 22:07 18.4.06 Äh, perhana. No kuitenkin. Tuossa sinun toteutuksessasi olet lähtenyt hakemaan sitä tiedoston nimeä aika monimutkaisesti, kun se kuitenkin on PROCESSENTRY32 structin jäsen ( szExeFile ). Harmi, ei tullut vilkaistua koodipätkiä tarpeeksi tarkasti. Toivottavasti kuitenkin kelpaa. Torak 00:23 24.4.06 Joo, tossa meikäläisen esimerkissä on ideana että haetaan koko tiedoston polku. Niin ei tarvitse ihmetellä missä hakemistossa mikäkin on. |
![]() Haku
|