powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
15 сообщений из 15, страница 1 из 1
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39609998
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пишу VCL-приложение. Оно может компилироваться только под 32-бит, а вот ОС вполне может быть 64-бит.
Мне требуется получать информацию обо всех запущенных процессах, и 32-бит и 64-бит. Делфи-Токио.

Что-то не могу нагуглить - а не появилось ли в VCL модулей которые могут это делать (обойтись без явного использования WinAPI)?
И если без API не обойтись - у меня затык, почему-то получаю только 32-битные процессы... В чём там фокус? Вроде что-то когда-то слышал, но забыл...

Подскажите кто-то... Спасибо!
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39609999
Katraps
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через WMI можно
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610004
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610016
_StarikPro_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LoneFast,

Я делал так (железобетонный WinAPI):

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
type
  PProcInfo = ^TProcInfo;
  TProcInfo = packed record
    ModulePID: Cardinal;
    ModuleName: string;
    ModulePath: string;
  end;

......

procedure GetListPoc(List: TList<PProcInfo>);
var
  bContinue: BOOL;
  aSnapshotHandle: THandle;
  aProcessEntry32: TProcessEntry32;
  LpModuleInfo: PProcInfo;
begin
  aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
  bContinue := Process32First(aSnapshotHandle, aProcessEntry32);
  while Integer(bContinue) <> 0 do
    begin
    new(LpModuleInfo);
    LpModuleInfo.ModuleName := ExtractFileName(aProcessEntry32.szExeFile);
    LpModuleInfo.ModulePath := ExtractFilePath(aProcessEntry32.szExeFile);
    LpModuleInfo.ModulePID := aProcessEntry32.th32ProcessID;
    List.Add(LpModuleInfo);
    bContinue := Process32Next(aSnapshotHandle, aProcessEntry32);
    end;
  CloseHandle(aSnapshotHandle);
end;
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610027
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_StarikPro_
Код: pascal
1.
LpModuleInfo.ModuleName := ExtractFileName(aProcessEntry32.szExeFile);

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682489(v=vs.85).aspx Note that you can use the QueryFullProcessImageName function to retrieve the full name of an executable image for both 32- and 64-bit processes from a 32-bit process.
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610058
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LoneFast, возможно, вы путаете получить список всех процессов (получить список PID) и получить имя исполняемого файла для заданного процесса.
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610080
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, сейчас опробуем.

GunSmoker, вы угадали то что мне не нужен весь список, что мне нужен только один процесс. Но мне как раз не известно ни PID ни hProcess, задача почтичто наоборот. С:


З.Ы. А не подскажите как искать в каком модуле описана API-функция, например эта же QueryFullProcessImageName? У меня Стартер, исходного кода нету, поиск по файлам ничего не находит. Гугл выдаёт примеры использования, но не где она объявлена в Делфи...
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610100
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня Стартер, исходного кода нетуВозьми Lazarus посмотри как там ( \fpc\3.0.4\source\rtl\win\wininc\unidef.inc ) описаны API функции, потом QueryFullProcessImageName пропиши по аналогии у себя в модуле.
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610106
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да описать руками я прекрасно умею)
Для этого обычно хватает описания в MSDN. Просто зачем плодить рукотворные external'ы, если где-то в <Winapi.*> оно вероятно уже должно быть? Только как понять где...
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610121
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LoneFastоно вероятно уже должно быть? Только как понять где...
Код: plaintext
for /r c:\ %i in (*.*) do find /i /n "QueryFullProcessImageName" %i
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610125
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Во-первых вы забыли "кавычки" и "собачки", а во вторых вы кажется не читаете, я ж говорю - ноль совпадений, ноль... Об чём я тут и твержу... =/
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610127
kep-ko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LoneFast, вы, кажется, не читаете:Возьми ... посмотри ... пропиши
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610136
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос стоит "в каком модуле Делфи оно объявлено". А "объявите сами вручную" это не то что спрашивалось. =/
Ладно, проехали...
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610142
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LoneFast, ни в каком. Новых функций WinAPI в Delphi практически нет. Либо самим руками, либо JEDI Windows API.
...
Рейтинг: 0 / 0
Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
    #39610161
_StarikPro_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LoneFast,

Winapi.TlHelp32
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить информацию обо всех процессах в 64-битной ОС из 32-битного процесса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]