Конференция "WinAPI" » Имя процесса
 
  • Гарик (27.02.15 06:25) [0]
    Здравствуйте. Подскажите, как возможно отслеживать процесс, зная его имя без учета регистра? Например "prog.exe" и "ProG.EXE"
  • MBo © (27.02.15 07:47) [1]
    Можно либо приводить все строки к одному регистру, например, с помощью функций типа AnsiUpperCase, либо сравнивать их регистронезависимыми функциями вроде CompareText
  • Гарик (27.02.15 12:39) [2]
    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;

    Как реализовать это в этой функции?
  • brother © (27.02.15 13:13) [3]
    If AnsiLowerCase(prEntry.szExeFile) = AnsiLowerCase(FileName) then
  • Гарик (27.02.15 13:21) [4]
    brother, спасибо! Все отлично работает!
  • Rouse_ © (27.02.15 18:06) [5]
    А если процессов два?
  • brother © (27.02.15 18:29) [6]
    я так понимаю, что шерифа это не волнует...)
  • Rouse_ © (27.02.15 18:33) [7]
    Мне кажется, я начинаю понимать суть задачи, но... подождем еще вопросов :)
  • Andrey Alekseev (27.02.15 20:49) [8]
    Блин, ребята, правда столкнулся с проблемой, что процессов несколько с одинаковым именем.. подскажите, как быть???
  • Rouse_ © (27.02.15 20:51) [9]
    Как я и говорил :)
    Давай - рассказывай, что за софт пишешь.
  • Andrey Alekseev (27.02.15 20:56) [10]
    Лично я пишу чит для игры. Использую эту функцию для поиска имени игры.. Если имя не соответствует регистру, то функция бесполезна..
  • Rouse_ © (27.02.15 20:58) [11]
    Ну я так и думал.
    Повезло - на нашем форуме за разработку читов не банят :)
    Давай вещай дальше WoW я так думаю?
  • Andrey Alekseev (27.02.15 20:59) [12]
    Нет.. Любая игра, которая позволяет запускать себя несколько раз..
  • Rouse_ © (27.02.15 21:02) [13]
    Отлично, давай к примеру возьмем - сапер.
    Как я понял, под ником "Гарик", ты его уже научился запускать, а под ником "Andrey Alekseev" ты научился отслеживать процесс данной игры.
    Рассказывай следующие шаги.
  • Andrey Alekseev (27.02.15 21:04) [14]
    Необходимо найти именно активный процесс.
  • Rouse_ © (27.02.15 21:06) [15]
    Давай сделаем так, я тебе задам один вопрос, и если ты на него ответишь - продолжим.
    Вопрос: чем отличается hInstance от THandle
  • Andrey Alekseev (27.02.15 21:15) [16]
    Насколько мне известно, это указатель и индекс.
  • Rouse_ © (27.02.15 21:20) [17]
    Технически верно - можно немножко развернуть?
  • Rouse_ © (27.02.15 21:21) [18]
    Ну хотя бы, кто из них указатель, а кто индекс?
  • Rouse_ © (27.02.15 21:22) [19]
    И желательно дополнить, индекс чего именно? :)
  • Andrey Alekseev (27.02.15 21:25) [20]
    Общесистемный :-)
  • Rouse_ © (27.02.15 21:26) [21]
    Я просто почему придираюсь: не зная азов, у тебя не получится сделать то, что ты хочешь.
    А если это так - то и нет смысла подсказывать направление (ну разве-что в сторону института) :)
  • Rouse_ © (27.02.15 21:28) [22]

    > Andrey Alekseev   (27.02.15 21:25) [20]

    Это не GUI хэндл, он не глобальный. Подумай еще.
  • Andrey Alekseev (27.02.15 21:33) [23]
    HMODULE — это указатель
    HANDLE — индекс валидный для внутреннего массива
  • Rouse_ © (27.02.15 21:40) [24]

    > Andrey Alekseev   (27.02.15 21:33) [23]
    > HMODULE — это указатель
    > HANDLE — индекс валидный для внутреннего массива

    Да, это действительно так.

    Ладно, подведу итог: пока что ты рановато взялся за данную задачу.
    Написание читов - это конечно в вашей среде очень "круто", но те дядьки, которые их пишут, они имеют за бортом багаж знаний.
    Пока брось это дело и начни с азов (не как отобразить прогресс точками, как в этой теме: http://pda.delphimaster.net/?id=1424961592&n=18)
    А как вообще это работает.

    Ну а по поводу твоего ответа на мой вопрос: ты ответил правильно, ибо так написано в интернете :)
    Но ты действительно думаешь что это правильный ответ? :)
  • Andrey Alekseev (27.02.15 21:43) [25]
    можно вам в аську написать?
  • Rouse_ © (27.02.15 21:53) [26]
    Можно, но отвечу только в понедельник.
  • Andrey Alekseev (27.02.15 21:55) [27]
    Хорошо. Спасибо.
  • ParanoiS © (06.03.15 19:26) [28]
    В делфи32 ничем не отличаются. Оба = Cardinal :)
  • Eraser © (07.03.15 04:34) [29]

    > 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/

    (там и еще есть статьи такого типа)
  • Inovet © (07.03.15 17:57) [30]
    > [29] Eraser ©   (07.03.15 04:34)
    > http://habrahabr.ru/post/178007/
    > http://habrahabr.ru/post/178393/
    > http://habrahabr.ru/post/202242/

    Это уже 2,5 года прошло?! Мда - время сжимается.
 
Конференция "WinAPI" » Имя процесса
Есть новые Нет новых   [134427   +34][b:0][p:0.001]