Головна сторінка
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.58 MB
Час: 0.028 c
1-74736
Strumpf
2002-12-14 00:09
2002.12.23
Пропадає системне меню дочірнього вікна MDI-форми: ((


14-74957
Yuri Btr
2002-12-02 10:48
2002.12.23
Запис до реєстру завантажуються значень для всіх користувачів


14-74900
Vopros
2002-12-03 17:15
2002.12.23
Як ви розслабляєтеся ввечері, після роботи?


3-74552
Relict
2002-12-04 11:54
2002.12.23
Jpeg MSSQL


14-74902
Agent Delphi
2002-11-30 20:34
2002.12.23
Модем і факс модем





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