Форум: "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.46 MB
Время: 0.009 c