Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.23;
Скачать: CL | DM;

Вниз

Использование функции NtQuerySystemInformation   Найти похожие ветки 

 
KPV-10k ©   (2002-11-08 22:22) [0]

Господа! Кто юзал NtQuerySystemInformation для просмотра процессов в системе? Пожалуйста поделитесь опытом!..


 
Василий2 ©   (2002-11-09 13:54) [1]

А что тебя конкретно интересует?


 
KPV-10k ©   (2002-11-09 15:58) [2]

Получение списка процессов...


 
Василий2 ©   (2002-11-09 16:15) [3]

Используй CreateToolhelp32Snapshot из TlHlp32! Она работает не только в WinNT, но и в Win9x! Если именно NtQuerySystemInformation, то знаю лишь, что она имеет вид NtQuerySystemInformation(v1 : DWORD; v2 : DWORD; v3 : DWORD; v4 : DWORD);


 
Василий2 ©   (2002-11-09 16:16) [4]

Уппс... Из TlHelp32, а не TlHlp32.


 
Игорь Шевченко ©   (2002-11-11 12:10) [5]

KPV-10k © (08.11.02 22:22)

Я юзал. Опыт - хороший


 
paul_shmakov ©   (2002-11-11 12:49) [6]

2 Василий2:
"Используй CreateToolhelp32Snapshot из TlHlp32! Она работает не только в WinNT, но и в Win9x!"
как раз в nt оно и не работает :)

2 KPV-10k:
воспользуйтесь поиском на ya.ru, google.com и т.д.


 
Василий2 ©   (2002-11-11 13:03) [7]

paul_shmakov -> Ничего подобного...
Вот я юнит написал, чтобы PIDера получал:

{getpid.pas}

type
tagProcessEntry32 = packed record
dwSize: DWORD;
cntUsage: DWORD;
th32ProcessID: DWORD;
th32DefaultHeapID: DWORD;
th32ModuleID: DWORD;
cntThreads: DWORD;
th32ParentProcessID: DWORD;
pcPriClassBase: Longint;
dwFlags: DWORD;
szExeFile: array[0..MAX_PATH - 1] of char;
end;

TProcessEntry32 = tagProcessEntry32;

const
TH32CS_SNAPPROCESS = $00000002;

function CreateToolhelp32Snapshot(dwFlags, th32ProcessID: DWORD): THandle;
stdcall; external "kernel32.dll" name "CreateToolhelp32Snapshot";
function Process32First(hSnapshot: THandle; var lppe: TProcessEntry32): BOOL;
stdcall; external "kernel32.dll" name "Process32First";
function Process32Next(hSnapshot: THandle; var lppe: TProcessEntry32): BOOL;
stdcall; external "kernel32.dll" name "Process32Next";

function GetPId(ProcessName : string) : dword;
var
SnapshotHandle : THandle;
ProcessEntry32 : TProcessEntry32;
_ProcessName : array[0..MAX_PATH - 1] of char;
begin
result := 0;

fillchar(ProcessEntry32, sizeof(ProcessEntry32), 0);
fillchar(_ProcessName, sizeof(_ProcessName), 0);

lstrcpy(_ProcessName, pchar(ProcessName));
ProcessName := AnsiLower(_ProcessName);

SnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if SnapshotHandle = INVALID_HANDLE_VALUE then exit;

ProcessEntry32.dwSize := sizeof(ProcessEntry32);
if Process32First(SnapshotHandle, ProcessEntry32) then
while Process32Next(SnapshotHandle, ProcessEntry32) do
if AnsiLower(ProcessEntry32.szExeFile) = ProcessName then
begin result := ProcessEntry32.th32ProcessID; break; end;

CloseHandle(SnapshotHandle);
end;


Использование: GetPID("winlogon.exe");

Лично у меня все без проблем. (Win2000).


 
Игорь Шевченко ©   (2002-11-11 13:05) [8]

NT и Win2000 это две большие разницы в части ToolHelp


 
paul_shmakov ©   (2002-11-11 13:55) [9]

Tool Help Library входит в win9x/Me/2k/xp, но не входит в nt.



Страницы: 1 вся ветка

Текущий архив: 2002.12.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-74571
wHammer
2002-12-04 14:44
2002.12.23
Как отфильтровать в TTable по полю даты?


1-74681
Che
2002-12-13 12:54
2002.12.23
Active !!


3-74573
Shved
2002-12-03 17:33
2002.12.23
Трехступенчатый запрос


7-75004
Alex Bykov
2002-10-10 13:27
2002.12.23
Тема старая но теперь под 2000/ХП


8-74851
sad
2002-09-05 08:02
2002.12.23
Полигон в Teechart