А вдруг заработает нормально с классическим API, надо попробовать. Хотя сильно сомневаюсь. AFAIK, весь инструментальный API подглючивает то тут, то там из-за виртуализации в 64 битных.
Этот топик читают: Гость
Ответов: 3889
Рейтинг: 362
|
|||
карма: 1 |
|
Разработчик
Ответов: 26173
Рейтинг: 2128
|
|||
Ivann, у тебя в примере есть огоромный минус -- ищется родительский идентификатор только для текущего процесса, а нужен для любого
|
|||
карма: 22 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Из соседней темы
1nd1g0 писал(а): В паре компонент манипуляции процессов не реализованы эти функции, хотя библиотеки, в принципе, позволяют. В том же WMI не обрабатывается запрос к базе ParentProcessID, в EnumProcess используется tlhelp32, но не реализованы функции чтения части структуры данных процесса - th32ParentProcessID. А ведь довольно нужная функция, если подумать.------------ Дoбавленo в 14.33: Я же не зря всё время в Tlhelp32(toolhelp32) тыкаю пост за постом. Там немного муторно процессы перечислять и структуру с информацией о них анализировать, но вполне юзабельно всё. И читать память процесса тоже можно функцией со страшным именем "Toolhelp32ReadProcessMemory", помню, тут кто-то спрашивал) |
|||
карма: 1 |
|
Разработчик
Ответов: 26173
Рейтинг: 2128
|
|||
1nd1g0, не прокатило чтение поля th32ParentProcessID, выдает нулевой ID на любой запущенный процесс
|
|||
карма: 22 |
|
Ответов: 3889
Рейтинг: 362
|
|||
nesco, а можно код глянуть?
![]() |
|||
карма: 1 |
|
Ответов: 3349
Рейтинг: 233
|
|||
карма: 1 |
| ||
файлы: 1 | code_23851.txt [3.8KB] [381] |
Разработчик
Ответов: 26173
Рейтинг: 2128
|
|||
1nd1g0 писал(а): а можно код глянуть?В EnumProcess структура PROCESSENTRY32 заполняется уже, оттуда и читаю th32ProcessID и th32ParentProcessID ------------ Дoбавленo в 15.00: Ivann, копаем в сторону чтения структуры PROCESSENTRY32, не добавляя лишних сущностей, тк эта структура уже есть в EnumProcess ------------ Дoбавленo в 15.02: 1nd1g0, подставь в EnumProcess, вместо
вот это
Должно выдавать ID родительского процесса, а выдает ноль ------------ Дoбавленo в 15.11: Ivann, твой код не откроет порождающий процесс, если у тебя не будет привелегий |
|||
карма: 22 |
|
Ответов: 3889
Рейтинг: 362
|
|||
Ну что сказать, прямо сейчас буду пытаться заставить работать свой VBScript в HiAsm, опрашивать базу WMI, там тоже есть поле ParentProcessID. Тут ещё HiAsm регулярно вылетает с OutOfMemory, пока скрипт писать пытаюсь. У кого опыт VBS в HiAsm, какие особенности помимо обязательного соблюдения парадигмы функций и имён? У меня даже парсить не начинает, ошибку синтаксиса выдаёт на создании экземпляра объекта set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Хотя в отдельном .vbs файле за милую душу у меня работает. |
|||
карма: 1 |
|
Ответов: 245
Рейтинг: 3
|
|||
первая схема Ivann на windows 7 x64 работает.. только определяется родительский процесс текущей программы как я понял... а надо стороней
все остальные две схемы включая nesco не работают |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
[offtop]Меня этот редактор VBS в HiAsm задолбал. 2 Гб оперативной памяти при закрытии выделяет себе, потом память кончается, Out Of Memory и так до очередной попытки выйти из редактора. Потерял три раза исходники не дождавшись конца памяти. Всё, ну его далеко и на долго)[/offtop]
|
|||
карма: 1 |
|
Разработчик
Ответов: 26173
Рейтинг: 2128
|
|||
goluzov писал(а): все остальные две схемы включая nesco не работаютЭто проблема EnumProcess под Win7 x64. Тк как вторая схема Ivann-a построена на принципе первой, то, похоже, добиться получения родительского процесса не своего приложения в x64 крайне проблематична из-за отсутствия таковой у разработчиков. Возможно, у Ivann-a есть 64-я Win7 и он сможет добиться положительного результата |
|||
карма: 22 |
|
Ответов: 3349
Рейтинг: 233
|
|||
карма: 1 |
| ||
файлы: 1 | code_23852.txt [1.6KB] [241] | ||
Голосовали: | 1nd1g0 |
Разработчик
Ответов: 26173
Рейтинг: 2128
|
|||
Ivann, это уже лучше. Но это требует перебора всех процессов, а как бы это дело воткнуть в EnumProcess к уже полученному th32ProcessId
|
|||
карма: 22 |
|
Ответов: 3349
Рейтинг: 233
|
|||
[b]nesco[/b],
|
|||
карма: 1 |
| ||
Голосовали: | nesco |
Ответов: 3889
Рейтинг: 362
|
|||
Ко ВСЕМ с ОС 64 bit, у Вас HiAsmElementsDelphiExampleSystemWMIProcessInfo.sha (code_23853.txt)
Нормально работает, все процессы показывает? Даже 64 битные? Все поля? ------------ Дoбавленo в 16.20: И как работает последний пример уважаемого Ivann? |
|||
карма: 1 |
| ||
файлы: 1 | code_23853.txt [1.5KB] [335] |