![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| tricky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 6.4.2005 Репутация: нет Всего: нет |
Как мне удалось выяснить Win2k/XP получает информацию о дисках, а
именно меня интересует тип диска (CD-ROM, жесткий и т.п.) из функций библиотеки shell32.dll, а не функцией GetDriveTypeA. У меня такое ощущение, что инфа о типах диска получается на старте Win2k/WinXP запоминается и затем в процессе работы винды больше не обновляется. Т.е. нажатие F5 не приводит к обновлению инфы о типах диска. Эти сведения я получил след.образом: внедрился в адресное простанство explorer перехватил функцию SHGetFileInfo, которая возвращает инфу о типах диска разместил там код windows.beep(500, 100), это означало что должен был происходить писк в случая обновления инфы о типе диска. Писк я так и не услышал (перехват выполнен на 100% в этом сомнения нет). Вопрос: Как заставить обновляться инфу о типах диска в explorer'e во время работы Win2k/XP |
|||
|
||||
| Rouse_ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Ну это очень глупый способ. Перехватил ты что? Что-то но никак не АПИ функцию, которая вполне возможно подгрузилась динамически, а не через IAT. Ну а типы диска определить достаточно просто, не спускаясь на второе кольцо:
Ну а обновление по всей видимости будем производить по такому вот событию:
Маленький коментарий: При открытии сидирома срабатывает DEVICE_DISABLE, при закрытии DEVICE_ENABLE При подключении сетевого диска также приходит DEVICE_ENABLE а при отключении DEVICE_DISABLE При подключении или отключении флэшки срабатывает DEVICE_FLASH... |
||||
|
|||||
| tricky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 6.4.2005 Репутация: нет Всего: нет |
Ты неправильно меня понял мне не нужно использовать функцию GetDriveType. Суть состоит в следующем я с помощью своего компонента InterceptorJmp(в скором времени появится на www.torry.net - аналога для DELPHI не существует) осуществляю перехват GetDriveType и вместо жестких дисков возращаю результат CD_ROM после чего файловый менеджер Windows Comander вместо жестких отображает CD-Rom'ы. В мой компьютере так не получится так как процесс explorer не использует GetDriveType а использует shell-функцию. Я могу перехватить эту shell - функцию, но т.к. результат этой функция запоминается один раз при старте системы, то при дальнейшей ситуации обновлении инфы о дисках не происходит. Как заставить обновится инфу о дисках через shell - функцию. |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Ничего не пойму, про какую функцию ты говоришь?
|
|||
|
||||
| Dr.No_xXx |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 215 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
Тебе надо немного изменить содержание dll(shell32.dll)/
|
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
Я перехватываю функцию SHGetFileInfo возращаю результат для всех дисков возвращаю CD. Как заставить принять новую инфу к сведению. У меня вызов MySHGetFileInfo, MySHGetFileInfoA, MySHGetFileInfoW происходит вместо SHGetFileInfo, SHGetFileInfoA, SHGetFileInfoW. Но возвращаемые результаты не принимаются к сведению. Может быть результат возвращаю не в том формате хотя вряд ли. Как заставить принять систему новую инфу. -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |