![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как по ProcessHandle получить ProcessID [D5, D6, D7, Win2k, WinXP]
xAnjel © (2005-01-02 19:42:00)перебор всех ID и получение по них Handle не предлагать
MessageBox(0,PChar(Int2Str(OpenProcess(PROCESS_TERMINATE,False,GetCurrentProcessID))),'Generated1',0);
MessageBox(0,PChar(Int2Str(OpenProcess(PROCESS_ALL_ACCESS,False,GetCurrentPocessID))),'Generated2',0);
MessageBox(0,PChar(Int2Str(OpenProcess(PROCESS_TERMINATE,False,GetCurrentPocessID))),'Generated3',0);
MessageBox(0,PChar(Int2Str(OpenProcess(PROCESS_ALL_ACCESS,False,GetCurrentPocessID))),'Generated4',0);
все разные значения будут!!!
CloseHandle делать нельзя.
GuAV (2005-01-04 14:54:00) [21]http://msdn.microsoft.com/library/en-us/dllproc/base/getprocessid.asp
, но Requires Windows XP SP1.
Для более старых ОС - некокументированная функция из ntdll.dll
Пример - на сайте Игоря Шевченко в QuerySystemInformation_60
Erik1 (2005-01-04 11:25:00) [22]Сразу приходит в голову получить список всех процесов и перебрать их Handle. Когда оказывается одинаковый с заданым, вытаскиваем его ID.
kaZaNoVa (2005-01-03 15:41:00) [23]xAnjel © (03.01.05 14:57) [6]
> Можно! видел dcu которые это делали, но нужен сурс
ну, так .. ИДА в зубы и вперёд:))
Piter (2005-01-03 15:26:00) [24]Каким образом ты хочешь с ним работать?
xAnjel (2005-01-03 14:57:00) [25]>> Никак.
Можно! видел dcu которые это делали, но нужен сурс
>> А зачем тебе нужно знать ID процесса?
чтобы знать что за процесс, и работать с ним соответственно.
Piter (2005-01-03 14:31:00) [26]Никак.
А зачем тебе нужно знать ID процесса?
xAnjel (2005-01-03 14:04:00) [27]процесс не мой, моя только длл, и не я решал, что передавать, так что передают хендл, который закрывань не желательно.
Так все же как по Handle получить ID процесса?
Piter (2005-01-03 13:51:00) [28]xAnjel © (03.01.05 12:18) [2]
в ф-цыю передаетса хендл процесса
handle процесса будет для всех процессов разный. И в одном процессе он будет разный, как ты сам заметил. Поэтому передавать надор ID процесса - величину постоянную.
И между прочим, на каждый OpenProcess надо сделать CloseHandle
xAnjel (2005-01-03 12:18:00) [29]мне не свого процесса надо, у меня длл подгружаемая другим процессом, в ф-цыю передаетса хендл процесса (любого), а мне нужно узнать что за процесс, по его хендлу!
Eraszer (2005-01-02 20:09:00) [30]GetCurrentProcessId