imho.ws |
![]() |
![]() |
![]() |
# 1 |
Guest
Сообщения: n/a
|
закрытие процесса
Приветствую,
Ребята, очень нужна ваша помощь, запарился совсем... Пытаюсь написать небольшую программку, типа Диспетчера задач... Никак у меня не получается закрывать процессы.... Позволю себе привести некоторые части кода: DWORD process_ids[5000]; DWORD num_processes; int success; if ( NULL == VDMEnumTaskWOWEx || NULL == EnumProcesses || NULL == GetModuleFileName || NULL == GetModuleBaseName || NULL == EnumProcessModules ) return; num_processes=0; success = EnumProcesses(process_ids, sizeof(process_ids), &num_processes); num_processes/=sizeof(process_ids[0]); if (!success) {return;} for (unsigned i=0; i<num_processes; i++) { HANDLE process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, process_ids[i]); HMODULE modules[500]; DWORD num_modules; char file_name [MAX_PATH]; EnumProcessModules(process, modules, sizeof(modules), &num_modules); num_modules /= sizeof (modules[0]); if (GetModuleFileName(process, modules[0], file_name, sizeof(file_name))) { CString mstr; char string1[256]; wsprintf (string1, " %#4x \t%-55s",process_ids[i], file_name); mstr=string1; m_ListPS.AddString(mstr); GetModuleBaseName(process, modules[0], file_name, sizeof(file_name)); } CloseHandle(process); hand_ar[i]=process_ids[i]; } return; } Это я получаю инфу о процессах, и вывожу их в clistbox int j=m_ListPS.GetCurSel(); char str[256]; wsprintf (str,"%#4x \t%",hand_ar[j]); HANDLE CurProc=OpenProcess(PROCESS_QUERY_INFORMATION,NULL,(unsigned)str); BOOL ec=GetExitCodeProcess(CurProc,(unsigned long*)STILL_ACTIVE); TerminateProcess(CurProc,ec); CloseHandle(CurProc); Самое интересное в том, что тут wsprintf (str,"%#4x \t%",hand_ar[j]); у меня то правильные идентификаторы передаются, но "неправильные" Smile В общем, замучился, я с ними уже... В чем моя ошибка при удалении процессов? |
![]() |
# 2 | |
Member
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245
![]() ![]() |
Цитата:
HANDLE CurProc=OpenProcess(PROCESS_QUERY_INFORMATION,NULL ,hand_ar[j]);
__________________
Best Regards |
|
![]() |
![]() |
# 8 | ||
Guest
Сообщения: n/a
|
Цитата:
[quote]т.е. что TerminateProcess() возвращает?[/qoute] возващает 0 Цитата:
Из-за чего такое может происходить? То как, я заполняю массив с идентификаторами и получаю список процессов в моем первом посте. ![]() |
||