Среда, 24.04.2024, 13:17 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
delphicode » Delphi » Вопросы по Delphi » Узнать id процесса зная его имя
Узнать id процесса зная его имя
Anton93Дата: Пятница, 22.04.2011, 19:06 | Сообщение # 1
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
перерыл все, рабочего так и не нашел, знаю имя процесса, нужен его ид получить, как этот сделать?

ICQ: 41896
 
C@TДата: Пятница, 22.04.2011, 19:53 | Сообщение # 2
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
держи, для себя писал когдато , в юзесах только tlhelp32 указать незабудь

Function GetProcID(name:string):Cardinal;
var
SnapShot:THandle;
process:TProcessEntry32;
begin
result := 0;
SnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS,0);//делаем снимок процессов
process.dwSize := SizeOf(Process);//указываем размер структуры
Process32First(SnapShot,Process);//начинаем перебирать процессы
repeat
if process.szExeFile = name then
begin
result := process.th32ProcessID;
CloseHandle(SnapShot);
exit;
end;
until Process32Next(SnapShot,Process) <> true;
CloseHandle(SnapShot);
end;


 
Anton93Дата: Суббота, 23.04.2011, 13:25 | Сообщение # 3
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
ошибка! память не может быть read и так кстати многие примеры пишут

ICQ: 41896
 
C@TДата: Суббота, 23.04.2011, 17:39 | Сообщение # 4
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
Quote (Anton93)
ошибка! память не может быть read и так кстати многие примеры пишут

это где такая ошибка ?


 
Anton93Дата: Суббота, 23.04.2011, 18:04 | Сообщение # 5
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
при запуске этой функции, ну когда до нее дело доходит. попробуй сам

ICQ: 41896
 
gravitasДата: Воскресенье, 24.04.2011, 13:49 | Сообщение # 6
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
Нашел в РАТе функцию получения списка процессов. Там же и айди получается. Протестил - работает. Переделывать под получение айди из имени проца не стал.
Code
function GetProc():String;
var
    Proceso : TProcessEntry32;
    ProcessHandle : THandle;
    HayOtroProceso   : Boolean;
begin
    Proceso.dwSize := SizeOf(TProcessEntry32);
    ProcessHandle := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if Process32First(ProcessHandle, Proceso) then  //Si encuentra el primer proceso
    begin
      Result:= String(Proceso.szExeFile) + '|'+ IntToStr(Proceso.th32ProcessID)+'|';
      repeat HayOtroProceso := Process32Next(ProcessHandle, Proceso);
        if HayOtroProceso then
          Result:=Result + String(Proceso.szExeFile) + '|'+ IntToStr(Proceso.th32ProcessID)+'|';
      until not HayOtroProceso; //Y esto se repite hasta que Process32Next retorne False
    end;
    CloseHandle(ProcessHandle);
end;

(Proceso.th32ProcessID)


TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
 
Anton93Дата: Понедельник, 25.04.2011, 12:10 | Сообщение # 7
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
ок! буду пробовать, потом отпишусь о работоспособности

ICQ: 41896
 
XSPYДата: Понедельник, 25.04.2011, 13:08 | Сообщение # 8
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
gravitas, не в спайнете нашел?

Я не крекер,а программист!
Я не преступник-я свободный человек!
Лучше один раз накодить,чем сто раз качать билды!
 
gravitasДата: Понедельник, 25.04.2011, 13:26 | Сообщение # 9
Авторитетный
Зарегистрирован: 01.05.2010
Группа: Пользователи
Сообщений: 385
Статус: Offline
XSPY, этот пример почти во всех РАТах используется. Но взял из CoolVibes biggrin

TheDeduction

Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
 
C@TДата: Понедельник, 25.04.2011, 14:26 | Сообщение # 10
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
Quote (gravitas)
Нашел в РАТе функцию получения списка процессов. Там же и айди получается. Протестил - работает. Переделывать под получение айди из имени проца не стал.

а мой код разве не тоже самое делает ?


 
XSPYДата: Вторник, 26.04.2011, 14:43 | Сообщение # 11
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
gravitas, не слыхал о таком...
а насчет примера-то да)) cool cool


Я не крекер,а программист!
Я не преступник-я свободный человек!
Лучше один раз накодить,чем сто раз качать билды!
 
delphicode » Delphi » Вопросы по Delphi » Узнать id процесса зная его имя
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz