Конференция "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]
    И желательно дополнить, индекс чего именно? :)
 
Конференция "WinAPI" » Имя процесса
Есть новые Нет новых   [118241   +24][b:0][p:0.001]