Главная страница
    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.46 MB
Время: 0.009 c
1-74673
Svin
2002-12-09 14:40
2002.12.23
МАТЕМАТИКА


1-74812
Again
2002-12-10 17:22
2002.12.23
RadioButton


3-74554
alxx
2002-12-03 12:43
2002.12.23
Сумма в FreeReport (FastReport).


14-74942
Snap
2002-11-20 14:23
2002.12.23
Фонть


4-75052
Keplin Sergey
2002-11-10 22:06
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский