![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Копался на форуме долго, но этого не нашел.
--------------------
|
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Madest
Посмотри в MSDN описание CreateToolhelp32Snapshot |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Step
Не совсем так. Там обсуждается получение ID по HANDLE, а человека интересует по имени процесса |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
Mad, к сожелению почемуто получаеться что наши посты ведут себя как конфликтующее и вот эти в том числе
ты сам что предложил вот это CreateToolhelp32Snapshot ну будет у тебя снимок.... и потом ты будешь искать по имени в этом снимке а в той теме уже есть код обработки снимка, осталось его только скорректировать... Добавлено @ 17:25
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Goldberg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
Посмотри - Process::GetProcessesByName
--------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
Madest, интересная задача..
давайте разберемся
по имени приложения или процесса... все предложенные варианты были про имя процесса если необходимо по имени приложения то необходимо получать хендл окна этого приложения и танцевать от него -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
http://forum.vingrad.ru/index.php?showtopic=22801&hl=mysql
Задержка - по закрытию окна "Setup complete". Это в API было. Кстати, не всегда срабатывало. А сейчас пишу свой инсталлятор программы с MFC - вообще не работает. Причем если раскомментировать MessageBox все четко срабатывает. Чудеса да и только =) Что он такого делает - мне не въехать. А не работет вот в каком смысле: процесс "setup.exe" запускается, а "_INS5176_._MP" (вот оно имя процесса найденное в таскменеджере) нет. Мне б найти его ID или сразу HANDLE чтоб затормозить. Процесс "_INS5176_._MP" не запускается при наличии привиденного выше кода про окно. Т.е. хочу получить HANDLE и тормозить через WaitForSingleObject(). Начальство строго запретило наличие таинственных MessageBox-ов в инсталяшке =) Goldberq, 'Process' : is not a class or namespace name - пишет мне компилятор. Это сообщение отредактировал(а) Madest - 29.10.2004, 09:14 --------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
по привиденному мной коду вы можете перебрать все процессы, и сравнить имена, получив пид процесса вы открываете его пид-у и получаете хендл.... и делайте то что сможете
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Осталось немного =)
По имени отловить не получилось, поймал по родительскому pi.dwProcessId("setup.exe") целых два. Там еще _isdel.exe появляется. Но мимо задержки проскакивает из-за того что хендл как-то неправильно получаю. Чего не так? --------------------
|
|||
|
||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Хендл на второй процесс получаю, т.е. он не равен NULL, но с ним WAitForSingleObject не ждет.
Кстати, pe32.szExeFile какие-то странные: у первого [System Process], у второго System. Это сообщение отредактировал(а) Madest - 29.10.2004, 14:02 --------------------
|
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
WAitForSingleObject ищи чтото другое, имхо это не подходит к твой задачи...
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Другое что? Процесс или функцию? Если функцию, то какую приблизительно? =) Горе мне, горе... А может таки можно как-нить заставить работать код с окном "setup complete" без MessageBox?
--------------------
|
|||
|
||||
| Goldberg |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
#using <mscorlib.dll> #using <System.dll> Добавлено @ 22:13
--------------------
Вот такая у меня привычка, браться за задание, о выполнение которого я изначально не имею никакого представления. |
||||
|
|||||
| Madest |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Goldberq, что-то не подрубается ничего =(
if(pe32.th32ParentProcessID==pi.dwProcessId) - давало не то что мне нужно. Ну а вот что я сделал:
Но вот следующее условие if(pe32.szExeFile=="_INS5176._MP") не срабатывает, хотя передо мной код и MessageBox с "_INS5176._MP - они совпадают по названию! Попробовал банально if(pe32.szExeFile=="MSDEV.EXE") - тоже ничего! Как сравнивать имя процесса в таскменеджере и pe32.szExeFile. Скоро сойду с ума. --------------------
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |