Как в delphi по PID процесса узнать его название?
- К примеру: PID = 2717 и его название skype.exe
Другие языки программирования и технологии
Как по PID процесса узнать его название?
Здравствуйте.
Delphi, к сожалению, нет. Код FreePascal/Lazarus. Нужно немного подправить для Delphi (вместо JwaPsApi нужно просто PsApi, или если этого модуля нет, то объявить нужные функции WinAPI выше самостоятельно) , ну и исправить ошибки, если они возникнут:
{$mode delphi} // в самом Delphi это не нужно
uses Windows, JwaPsApi; // вместо JwaPsApi использовать PsApi
function GetProcessName(PID: DWord): AnsiString;
var
handle: THandle;
module: HModule;
needed: DWord;
begin
SetLength(Result, MAX_PATH);
handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID);
if handle <> 0 then begin
if EnumProcessModules(handle, @module, sizeof(module), needed) then
GetModuleBaseName(handle, module, PChar(Result), MAX_PATH)
else
Result := '';
CloseHandle(handle);
end
else
Result := '';
end;
begin
writeln(GetProcessName(5096));
end.
> Сева Николаев
> В PureBasic можно узнать так.. .
Адепты пюревасиков, мягко говоря, лукавят, а грубо говоря, откровенно врут. Дело в том, что в стандартных библиотеках пюревасика нет процедуры GetProcessName, для того, чтобы ее поиметь, нужно доставить внешнюю библиотеку.
Впрочем, все как обычно: ради впихивания в ответ ссылки на ворованные пюревасики, адепты идут на что угодно, даже игнорируя тот факт, что вопрос не имеет никакого отношения к пюревасикам.
Delphi, к сожалению, нет. Код FreePascal/Lazarus. Нужно немного подправить для Delphi (вместо JwaPsApi нужно просто PsApi, или если этого модуля нет, то объявить нужные функции WinAPI выше самостоятельно) , ну и исправить ошибки, если они возникнут:
{$mode delphi} // в самом Delphi это не нужно
uses Windows, JwaPsApi; // вместо JwaPsApi использовать PsApi
function GetProcessName(PID: DWord): AnsiString;
var
handle: THandle;
module: HModule;
needed: DWord;
begin
SetLength(Result, MAX_PATH);
handle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE, PID);
if handle <> 0 then begin
if EnumProcessModules(handle, @module, sizeof(module), needed) then
GetModuleBaseName(handle, module, PChar(Result), MAX_PATH)
else
Result := '';
CloseHandle(handle);
end
else
Result := '';
end;
begin
writeln(GetProcessName(5096));
end.
> Сева Николаев
> В PureBasic можно узнать так.. .
Адепты пюревасиков, мягко говоря, лукавят, а грубо говоря, откровенно врут. Дело в том, что в стандартных библиотеках пюревасика нет процедуры GetProcessName, для того, чтобы ее поиметь, нужно доставить внешнюю библиотеку.
Впрочем, все как обычно: ради впихивания в ответ ссылки на ворованные пюревасики, адепты идут на что угодно, даже игнорируя тот факт, что вопрос не имеет никакого отношения к пюревасикам.
гг через API не зависимо от яп юзай в MSDN
Kernel32.dll
функции : Process32First - Process32Next
Kernel32.dll
функции : Process32First - Process32Next
Похожие вопросы
- вывести PID процессов в порядке убывания С++ Как можно вывести PID процессов в порядке убывания на с++?
- как узнать PID системного процесса зная его имя EXE ...необходимо реализовать на C++ VS
- Как при помощи команды tasklist вывести только память процессов без PID, Имя сессии и т. д.
- Что за процесс System Idle Process?? Очень много ЦП тянет.. И вообще как можно узнать что за процесс(какой-нибудь другой
- как можно узнать кто поёт и название песни по звучанию???
- Приоритеты процессов в Linux
- Общая загруженность процессора при запущенном процессе с один потоком, выполняющим "while(true){}", не превышает 33%.
- в кореле текст в кривых, как узнать название подобного шрифта??
- Как же это работает. Разделение ресурсов устройств между процессами
- процесс conhost.exe