![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: нет Всего: 24 |
Сразу оговорюсь: в поиске был, видел многие аналогичные темы...Однако по ряду причин я все же решил создать эту тему, ибо есть некоторые вопросы.
Итак, что нужно: зная дескриптор окна, получить имя файла (причем очень желательно с полным путем) процесса, которому данное окно принадлежит. При этом хотелось бы, чтобы код, решающий данную задачу, успешно работал как под линейкой Win9x, так и под линейкой WinNT. Использую Borland C++ Builder 6. На данный момент я написал следующий код:
Однако он меня не устраивает в полной мере. Во-первых, он определяет имена exe'шников не для всех окон, в частности не получилось это сделать с окном Антивируса Касперского - оканчивается неудачей вызов функции OpenProcess. Во-вторых, код, предназначенный для Win9x, возвращает только имена файлов, без пути (вообще-то, я тестировал его на Win2k, возможно на Win9x он поведет себя иначе - если кто-нибудь может, проверьте, пожалуйста). Код, приведенный здесь - Как получить имя файла данного дескриптора окна - также заканчивается выводом имени файла, а не полного пути, однако он нормально сработал для Антивируса Касперского. Ну и, собственно, вопросы... хотя какие вопросы? Проблему-то я, вообщем, обозначил... Хочется универсальности - раз, полный путь - два, и желательно, конечно, чтобы срабатывало для всех окон... PS: есть замечательная программка InqSoft Window Scanner © CyberManiac , скачать ее можно отсюда: http://kickme.to/inqsoft, там эта задача, насколько я понимаю, решена внедрением DLL... -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
тут получалка под NT
для прог, защищающихся от закрытия (в частности для касторского) придется перехватывать функцию OpenProcess -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: нет Всего: 24 |
Не увидел по ссылке ничего для себя полезного, ибо в моем коде это все уже используется.
Можно немного подробнее? -------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "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. |