Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "WinAPI";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вниз

Використання функції 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 вся гілка

Форум: "WinAPI";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вгору





Пам'ять: 0.57 MB
Час: 0.033 c
1-74710
yaJohn
2002-12-13 17:02
2002.12.23
очікування асинхронного події & ShowModal


1-74667
Верховний
2002-12-13 09:59
2002.12.23
Як завантажити всі значення з INI-файлу в Listbox1?


3-74544
GAlexis
2002-12-03 16:15
2002.12.23
InterBase - з чого почати?


1-74672
кістки
2002-12-13 04:01
2002.12.23
Як встановити DelphiXD6?


1-74737
^ Sanya
2002-12-13 20:36
2002.12.23
У чому помилка ???





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська