Главная страница
    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.037 c
3-74590
oleg_er
2002-12-01 08:45
2002.12.23
тип данных


14-74933
Сатир
2002-12-01 20:53
2002.12.23
Исходящие на шару?


1-74823
SI-riuss
2002-12-10 11:35
2002.12.23
Клавиша TAB


1-74671
^Sanya
2002-12-12 23:28
2002.12.23
ActionManager...


14-74964
vopros
2002-12-03 12:17
2002.12.23
Где моя ветка?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский