|
|
|
|
shplint |
Среда, 15 Октября 2008, 12:12
|
Участник
Профиль
Группа: Участник
Сообщений: 156
Регистрация: 22.10.2005
Из: Россия, Семенов
Пользователь №: 9791
Конфигурация
Корпус: -- Процессор: Athlon 64 (socket 754/939/AM2) Материнская плата: Epox 9npa+ Оперативная память: SUMSUNG 256Мб,+384мб Видеокарта: Ati radeon x700 Жесткий диск (винчестер): Seagate Barracuda IV 340016A Дисковод: Нет дисковода CD/DVD: TEAC DW-552G, LG-GCR8500B Модем: smart ax mt880 Сетевой адаптер: -- Звуковая плата: -- Монитор: SUMSUNG SM 753DFX Операционная система: Windows XP Прочее: --

|
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <windows.h>
#define MAX_PATH 1024
bool KillProcByPid(DWORD pid); bool ListProcess(void); void PrintProcess(DWORD pid);
int main(int argc, char* argv[]) { DWORD pid; ListProcess(); PrintProcess(pid); KillProcByPid(pid);
(void)getch(); return 0; }
bool KillProcByPid(DWORD pid) { DWORD ExitCode;//Êîä çàâåðøåíèÿ ïðîöåññà HANDLE hp;// óêàçàòåëü íà pid ïðîöåññà bool ret = true;
puts("\t\nenter pid->"); scanf("%ld",&pid); if(pid!=NULL)//Ïðîâåðÿåì íå 0 ëè íîìåð ïðîöåññà åñëè äà òî ->... åñëè íåò -> return { hp = OpenProcess(PROCESS_ALL_ACCESS, true, pid);//hp=&pid if (hp!=NULL) { GetExitCodeProcess(hp, &ExitCode);//ïðîâåðÿåì çàâåðøèëñÿ ëè ïðîöåññ ñàì ïî ñåáå ret=TerminateProcess(hp, ExitCode);//çàâåðøàåì ïðîöåññ ïðèíóäèòåëüíî } else { return false; } } else { return false; }
CloseHandle(hp); return ret; }
bool ListProcess(void) { DWORD *PidProcess[1024],i,*cbNeeded,cb; DWORD CountProcess;
EnumProcesses(&PidProcess[0],sizeof(PidProcess),&cbNeeded); CountProcess=(*cbNeeded)/sizeof(DWORD);
for(i=0;i<CountProcess;i++) { printf("\n\t\t"); printf("%ld",*PidProcess[i]); }
return true;
}
void PrintProcess(DWORD pid) { HMODULE *hProc[1024]; HANDLE hp; DWORD cbNeeded,i; char NameProcess[MAX_PATH];
hp=OpenProcess(PROCESS_ALL_ACCESS,false,pid);//ñîçäàåì óêàçàòåëü íà ïðîöåññ if (hp!=NULL) { if(EnumProcessModules(hp,hProc,sizeof(hProc),&cbNeeded)!=NULL) { for(i=0;i<cbNeeded/sizeof(HMODULE);i++) { if(GetModuleFileEx(hp,*hProc[i],NameProcess,sizeof(NameProcess)))//ïîëó÷àåì ïóòü ïðîöåññà printf("\t%s (0x%08X)\n",NameProcess,*hProc[i]);//âûâîäèì èìÿ ïðîöåññà è åãî äåñêðèïòîð äëÿ ÎÑ } } }
CloseHandle(hp); } Суть проблемы вот в чем. Компилятор ругается в вункциях ListProcess и PrintProcess говорит что не знает ф. EnumProcess... хотя хедер я подключил. Помогите пожалуста!
|
|
|
|
|
Ответы
|
shplint Пролема с кодом Среда, 15 Октября 2008, 12:12
Квазимодо shplint,
1. Функции EnumProcesses, EnumProcessMod... Четверг, 16 Октября 2008, 9:17
shplint Я попробовал включить <psapi.h> но у меня ко... Четверг, 16 Октября 2008, 13:48
Квазимодо Да, функция вернет названия (без путей). Но она, о... Четверг, 16 Октября 2008, 14:37
shplint Квазимодо пасибо за подсказку! Но в коде врзни... Четверг, 16 Октября 2008, 17:36
shplint А вот эти функции правильно написаны?
{ DWORD P... Пятница, 17 Октября 2008, 17:03 |
Навигация
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|
|
|