-
Здравствуйте. Подскажите, как возможно отслеживать процесс, зная его имя без учета регистра? Например "prog.exe" и "ProG.EXE"
-
Можно либо приводить все строки к одному регистру, например, с помощью функций типа AnsiUpperCase, либо сравнивать их регистронезависимыми функциями вроде CompareText
-
function GetProcessName(FileName: string): Cardinal; var hSnap:THandle; prEntry:PROCESSENTRY32; begin Result:=0; hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); prEntry.dwSize := SizeOf(prEntry); If Process32First(hSnap,prEntry) then begin While Process32Next(hSnap,prEntry) do Begin If prEntry.szExeFile = FileName then Result:=Cardinal(prEntry.th32ProcessID); End; end; CloseHandle(hSnap); end;
Как реализовать это в этой функции?
-
If AnsiLowerCase(prEntry.szExeFile) = AnsiLowerCase(FileName) then
-
brother, спасибо! Все отлично работает!
-
А если процессов два?
-
я так понимаю, что шерифа это не волнует...)
-
Мне кажется, я начинаю понимать суть задачи, но... подождем еще вопросов :)
-
Блин, ребята, правда столкнулся с проблемой, что процессов несколько с одинаковым именем.. подскажите, как быть???
-
Как я и говорил :) Давай - рассказывай, что за софт пишешь.
-
Лично я пишу чит для игры. Использую эту функцию для поиска имени игры.. Если имя не соответствует регистру, то функция бесполезна..
-
Ну я так и думал. Повезло - на нашем форуме за разработку читов не банят :) Давай вещай дальше WoW я так думаю?
-
Нет.. Любая игра, которая позволяет запускать себя несколько раз..
-
Отлично, давай к примеру возьмем - сапер. Как я понял, под ником "Гарик", ты его уже научился запускать, а под ником "Andrey Alekseev" ты научился отслеживать процесс данной игры. Рассказывай следующие шаги.
-
Необходимо найти именно активный процесс.
-
Давай сделаем так, я тебе задам один вопрос, и если ты на него ответишь - продолжим. Вопрос: чем отличается hInstance от THandle
-
Насколько мне известно, это указатель и индекс.
-
Технически верно - можно немножко развернуть?
-
Ну хотя бы, кто из них указатель, а кто индекс?
-
И желательно дополнить, индекс чего именно? :)
-
Общесистемный :-)
-
Я просто почему придираюсь: не зная азов, у тебя не получится сделать то, что ты хочешь. А если это так - то и нет смысла подсказывать направление (ну разве-что в сторону института) :)
-
> Andrey Alekseev (27.02.15 21:25) [20]
Это не GUI хэндл, он не глобальный. Подумай еще.
-
HMODULE — это указатель HANDLE — индекс валидный для внутреннего массива
-
> Andrey Alekseev (27.02.15 21:33) [23] > HMODULE — это указатель > HANDLE — индекс валидный для внутреннего массива
Да, это действительно так. Ладно, подведу итог: пока что ты рановато взялся за данную задачу. Написание читов - это конечно в вашей среде очень "круто", но те дядьки, которые их пишут, они имеют за бортом багаж знаний. Пока брось это дело и начни с азов (не как отобразить прогресс точками, как в этой теме: http://pda.delphimaster.net/?id=1424961592&n=18) А как вообще это работает. Ну а по поводу твоего ответа на мой вопрос: ты ответил правильно, ибо так написано в интернете :) Но ты действительно думаешь что это правильный ответ? :)
-
можно вам в аську написать?
-
Можно, но отвечу только в понедельник.
-
Хорошо. Спасибо.
-
В делфи32 ничем не отличаются. Оба = Cardinal :)
-
> Andrey Alekseev (27.02.15 21:55) [27]
насоветуют тебе тут начинать с азов и идти в институт. если возраст лет до 25, а еще лучше до 20, то мозг должен позволить довольно быстро изучить вопрос (быстрее, чем многим кажется), только нужно, чтобы было действительно интересно. вот почитай несколько статей реально умного чувака. если разберешься во всех тонкостях, думаю вопросов уже столько не будет http://habrahabr.ru/post/178007/http://habrahabr.ru/post/178393/http://habrahabr.ru/post/202242/(там и еще есть статьи такого типа)
-
|