и вообще, нет функции GetPerformanceInfo в библиотеке PSAPI.DLL, по крайней мере в Win2K, по крайней мере у меня
Действительно под Win2k нет некоторых функций в PSAPI.DLL. Я просто забыл приложить обновленную ddl'ку. С ней программа запускается но теряет некоторые возможности.
Я выложил архив с этой дллкой http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=10225&filename=psapi.rar.
На более поздник версиях винды прога работает.
Проверял под ХР, сейчас работает по 2к3
Отличная программа, респект автору за опцию "убить все процесы кроме полезных"! Главный недостаток программы- не нашел горячих кнопок, настраиваемых на это действие...
Спасибо за совет и отзыв. Пока из горячих кнопок только Ctrl+Shift+Del для вызова главного окна из трея. Я допишу возможность установки на горячие клавиши разных функций проги. Добавлено спустя 2 минуты, 31 секунду
staw писал(а):
Akson ,На каком языке писал,если не секрет ?
Не секрет:). Писал на Visual C++. В MS Visual Studio 2003 Добавлено спустя 3 минуты, 11 секунд
Алканаффт писал(а):
а еще когда на график мышу наводишь, то появляется линия вертикальная, хотелось бы чтоб она отображала значение графика в этой точке и желательно чтоб обновлялась побыстрее, чем график..
Все пожелания будут учтены в следующей версии. Она появится после сессии, т.е. примерно через месяц, пока нет свободного времени, но я буду учитывать все пожелания и советы, а также исправлять ошибки. Добавлено спустя 5 минут, 19 секунд
Prod писал(а):
Akson Интересная програмка. В XP/SP2 при убивании все процессов кроме полезных, вызывает экран гибели. Верняк завершает процессы, являющиеся критическими.
Я уже писал про это. Дело в том, что сначала надо настроить прогу и указать: какие процессы вредные, а какие полезные. То, что по умолчанию сделал список пустым - виноват. В таком случае не Полезные = не Ничего = Все и прога убивает все процессы:) Добавлено спустя 1 минуту, 36 секунд
Недавно я действительно обнаружил этот глюк на некоторых машинах. Просто у меня на компе такого не было и пока я отлаживал прогу его не заметил.
Спасибо за сообщение об ошибке. Я постарась найти ее и исправить.
Прога замечательная, знаком с нею еще по циклу 3 статей о перехвате win api, но некоторые имена процессов отображает как Unknown, хотя тот же диспетчер процессов их видит и отображает корректно. Вот их список: CCAPP.EXE, symlcsvc.exe, NPFMNTOR.EXE, NAVAPSVC.EXE, CCEVTMGR.EXE, SPBBCSvc.exe, SNDSrvc.exe, CCSETMGR.EXE.
Видимо это была её одна из первых модфификаций. Вот цитата:
Защита:
Описанный мной метод перехвата API функций может быть использован для написания чрезвычайно опасных вредоносных программ.
Во избежание этого, я приведу здесь разработанный мной метод поиска скрытых процессов.
Метод состоит в том, что список процессов получается не с помощью API функций, а непосредственно через системные вызовы ядра Windows.
Недостаток данного метода состоит в том, что интерфейсы ядра не документированы, и узнать их можно только дизассемблируя системные библиотеки.
Также функции ядра могут различаться в разных версиях Windows, поэтому работоспособность этого метода везде не гарантируется.
Приведенный ниже код получает список процессов с помощью вызова интерфейсов ядра:
Procedure GetProcessList(var NameList, HandleList: TList);
asm
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, edx
mov ebx,eax
push $05
call @GetInfoTable
jmp @InfoTableEnd
@GetInfoTable:
push ebp
mov ebp, esp
sub esp, $04
push esi
push 0
pop dword ptr [ebp - $04]
mov esi, $4000
@GetInfoTable_doublespace:
shl esi, $01
push esi
push 0
call LocalAlloc
test eax, eax
jz @GetInfoTable_failed
mov [ebp-$04], eax
push 0
push esi
push eax
push dword ptr [ebp + $08]
call @OpenKernelData
jmp @Cont
@OpenKernelData:
mov eax, $AD
call @SystemCall
ret $10
@SystemCall:
mov edx, esp
sysenter
@Cont:
test eax, $C0000000
jz @GetInfoTable_end
cmp eax, $C0000004
jnz @GetInfoTable_failed
push dword ptr [ebp - $04]
call LocalFree
jmp @GetInfoTable_doublespace
@GetInfoTable_failed:
push 0
pop dword ptr [ebp - $04]
@GetInfoTable_end:
mov eax,[ebp - $04]
pop esi
leave
ret $04
@InfoTableEnd:
mov [edi], eax
@FindData:
mov edx, [eax + $3C]
mov eax, [ebx]
call TList.Add //NameList.Add
mov eax, [edi]
lea edx, [eax + $44]
mov eax, [esi]
call TList.Add //HandleList.Add
mov eax, [edi]
cmp [eax], 0
jz @EndData
add eax, [eax]
mov [edi], eax
jmp @FindData
@EndData:
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
end;
NameList будет содержать указатели PWideChar на имена процессов, а HandleList на их PID. Данный код проверен в Windows XP sp0,sp1 и sp2. В Windows 2000 он работать не будет, так как интерфейс системных вызовов там сильно отличается от XP. Но от перехвата API в ядре этот метод не спасет.
Этот метод поиска скрытых процессов реализован в моей программе ProcessMaster, которую вы можете скачать в приложении к статье.
Этот код я раньше не тестировал, сейчас выяснилось что он не вполне рабочий, в частности процедура спотыкается на
@InfoTableEnd:
mov [edi], eax
Будем считать это простым совпадением, http://www.cracklab.ru/download/get.php?g=118 Кстати неплохо было бы добавить получение скрытых перехватом win_api процессов, а дальше по усмотрению пользователя автоматически их закрывать или выделять в таблице.
Будем считать это простым совпадением, http://www.cracklab.ru/download/get.php?g=118 Кстати неплохо было бы добавить получение скрытых перехватом win_api процессов, а дальше по усмотрению пользователя автоматически их закрывать или выделять в таблице.
Предвещая недоразумения по поводу плагиата мной или у меня заранее пишу на тему цикла статей по перехвату WinAPI. Похоже, что это действительно совпадение, так как я не писал этот цикл статей и чужую работу присваивать себе не хочу. Я выбрал не очень удачное название, точнее название удачное, но кто-то из нас (Я или Автор того цикла статей) выбрал уже использующееся название. Я вероятно его изменю, когда буду обновлять программу.
Спасибо за совет по поводу скрытых процессов, идея действительно хорошая.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения