Узнать 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 
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, не слыхал о таком...
а насчет примера-то да)) 
Я не крекер,а программист!
Я не преступник-я свободный человек!
Лучше один раз накодить,чем сто раз качать билды!
|
|
|
|