Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#76: 2011-05-11 18:03:24 ЛС | профиль | цитата
Народ, короче, добиваайте WMI, а то с EnumProcess полная задница в win64, в нэте так и пишут, что API у кого работает у кого нет, толком нормальной версии кода не нашлось. Про NtQueryInformationProcess пишут на самом MSDN
MSDN писал(а):
NtQueryInformationProcess may be altered or unavailable in future versions of Windows. Applications should use the alternate functions listed in this topic

Типа в следующиъх версиях может и не поддерживаться
карма: 22

0
Ответов: 3889
Рейтинг: 362
#77: 2011-05-11 18:05:46 ЛС | профиль | цитата
Ivann, так это же WinAPI32
карма: 1

0
Ответов: 3349
Рейтинг: 233
#78: 2011-05-11 18:13:57 ЛС | профиль | цитата
nesco, а с TProcessEntry32? На самом MSDN example с её использованием этих функций
------------ Дoбавленo в 18.10:
example
------------ Дoбавленo в 18.13:
1nd1g0, c WMI только последний пример
------------ Дoбавленo в 18.13:
Все остальные с Win32 API
карма: 1

0
Ответов: 3889
Рейтинг: 362
#79: 2011-05-11 18:14:15 ЛС | профиль | цитата
Ivann, если вызывать из 64-битного процесса, то да, работает замечательно. Из 32-битного - хрен там. Виртуализация не позволяет полноценно работать с процессами 64-битными, да ещё и привилегии нужны высокие.
карма: 1

0
Ответов: 5227
Рейтинг: 586
#80: 2011-05-11 18:14:26 ЛС | профиль | цитата
wmi это грабли (причём индивидульно установленные мелкософтом у каждого на компьютере)
эм, тоже что-то попалось под руку code_23862.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_23862.txt [1.4KB] [356]
Ответов: 3349
Рейтинг: 233
#81: 2011-05-11 18:14:41 ЛС | профиль | цитата
nesco, А последний код был без
nesco писал(а):
NtQueryInformationProcess

карма: 1

0
Ответов: 3889
Рейтинг: 362
#82: 2011-05-11 18:15:29 ЛС | профиль | цитата
Те, кто будут писать "У меня работает на 64 бита", просто запускали из 32-тного приложения Ваши примеры и , естественно, они смогли указать своего , тоже виртуализированного , родителя. А вот пускай из explorer-64bit запустят.
карма: 1

0
Ответов: 3349
Рейтинг: 233
#83: 2011-05-11 18:15:53 ЛС | профиль | цитата
andrestudio, Это что?
карма: 1

0
Ответов: 245
Рейтинг: 3
#84: 2011-05-11 18:15:55 ЛС | профиль | цитата
карма: 0

0
Ответов: 3889
Рейтинг: 362
#85: 2011-05-11 18:16:39 ЛС | профиль | цитата
goluzov, заработало?
карма: 1

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#86: 2011-05-11 18:16:55 ЛС | профиль | цитата
Ivann писал(а):
а с TProcessEntry32? На самом MSDN example с её использованием этих функций

Если только ты найдешь, как к ней прицепить GetModuleFilenameEx
Короче, надо нормально сделать вот этот модуль



procedure ThiEnumProcess.EnumNT;
var PIDArray: array [0..1023] of DWORD;
cb: DWORD;
I: Integer;
ProcCount: Integer;
hMod: HMODULE;
hProcess: THandle;
begin
Init;
EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);
ProcCount := cb div SizeOf(DWORD);
for I := 0 to ProcCount - 1 do begin
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PIDArray[I]);
if (hProcess <> 0) then begin
EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
GetModuleFilenameEx(hProcess, hMod, procEntry.szExeFile, SizeOf(procEntry.szExeFile));
procEntry.th32ProcessID := PIDArray[I];
if not CallBack() then Break;
CloseHandle(hProcess);
end;
end;
_hi_OnEvent(_event_onEndEnum);
end;

карма: 22

0
Ответов: 3349
Рейтинг: 233
#87: 2011-05-11 18:17:01 ЛС | профиль | цитата
1nd1g0, Только не пример с WMI
карма: 1

0
Ответов: 245
Рейтинг: 3
#88: 2011-05-11 18:19:16 ЛС | профиль | цитата
1nd1g0, ParentProcess 392, но его нет в списке
карма: 0

0
Ответов: 3889
Рейтинг: 362
#89: 2011-05-11 18:22:33 ЛС | профиль | цитата
goluzov писал(а):
но его нет в списке
Он уже закрылся просто, когда система загрузилась.
карма: 1

0
Ответов: 5227
Рейтинг: 586
#90: 2011-05-11 18:23:25 ЛС | профиль | цитата
1nd1g0 писал(а):
andrestudio, Это что?
IC, аналог для твой первой схемы
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)