2008-10-22 2 views
4

Во-первых, здесь ограничения:Как получить уведомление, когда пользователь создает точку монтирования?

  • должны работать на XP
  • должны уведомить обоих приводных буквенных обозначений и монтировании тома в папку
  • не должен «просыпаться» диск, если он спать.
  • Я бы предпочел не опросить диск.

Что я пробовал:

  1. Google
  2. Я посмотрел на WMI и класса Win32_LogicalDisk. Я могу определить, какие диски монтируются на букву диска, но не те, которые установлены в папке. Классы Win32_Volume * и Win32_MountPoint были бы идеальны, но не доступны в XP.
  3. Я пробовал опросить диски с помощью FindFirstVolume & GetVolumePathNamesForVolumeName (хотя я бы этого не хотел), но кажется, что диски должны быть развернуты, прежде чем он сможет дать мне информацию. И снова, ew, опрос.

Я рассматривал возможность использования API зацепов зацепить вызовы к SetVolumeMountPoint и DeleteVolumeMountPoint, но я не думаю, что будет ловить все, и кажется, что может быть уродливым хак в любом случае.

Итак, да, я ищу предложения :)

ответ

2

API закреплять на SetVolumeMountPoint должен позволить вам перехватывать монтирует тома. Однако я не уверен в сетевых ресурсах.

Но это не было бы «уродливым взломом». То, что вы пытаетесь сделать, - это то, что в Windows было включено подключение. В Codeproject.com есть отличные уроки по подключению API: http://www.codeproject.com/KB/system/hooksys.aspx

Итак, вы на самом деле заявили о своем собственном лучшем решении. Помните, что для букв дисков есть отдельный API: http://nukz.net/reference/fileio/hh/winbase/fsys_6j8z.htm

Ваш проект звучит интересно. Обычно трояны и антивирус пытаются это сделать (и они также захватывают сетевые ресурсы.) Я только случайно знаком с этой темой, поэтому надеюсь, что это поможет.

Смежные вопросы