| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как получить Processid вызвав ShellExecuteEx? |
| Автор: leniviy 8.10.2004, 14:03 |
| Ну никак не могу найти |
| Автор: Step 8.10.2004, 15:49 |
| ИМХО GetSecurityInfo |
| Автор: p0s0l 8.10.2004, 17:11 | ||
| idProcess = GetProcessId ( hProcess ); - эта функция только в WinXP/2k3! Способ для всех NT-вындов: как сказал Step, только я честно говоря не знаю как это делается... Было бы познавательно узнать... Способ для всех 9x/NT виндов: делаешь CreateToolhelp32Snapshot, циклом Process32First / Process32Next, тем самым получая PID всех процессов, открываешь их, и смотришь, тот ли это процесс. Например, через GetProcessTimes можно узнать время создания (два процесса не могут иметь в точности одинаковое время создания...)... В Си не прогаю, но примерно будет так:
|
| Автор: Step 8.10.2004, 17:23 | ||||||||
все правильно можно и так
тут просто нужно сравнить с хендлом который получил и выйти когад совподет
я этого не делал, но порядок примерно такой в ShellExecuteEx передаеться указатель на структуру после выполнения поля структуры меняються получаем хендл и вызываем GetSecurityInfo в которую передаюеться хендл настрока запрашываемого объекта и указатели и по выполнению получаем сид Добавлено @ 17:24
а вот это для меня было новостью... к сожелению доки не нашел в МСДН |
| Автор: p0s0l 8.10.2004, 18:47 | ||||||||
Я в цикле перебрал все возможные права доступа в OpenProcess, начиная от 0 до 0xFFFF (аж с запасом), с TRUE и FALSE в качестве параметра bInheritHandle, - и всё равно не получается такого же точно хэндла...
Вот из MSDN:
|