2008-10-22 40 views
4

首先,這裏的約束:用戶創建安裝點時如何獲得通知?

  • 必須在XP
  • 運行必須通知兩個驅動器號分配和安裝的捲到一個文件夾
  • 切不可「喚醒」一個驅動器,如果它是睡眠。
  • 我真的不想投票驅動器。

我已經試過:

  1. 谷歌
  2. 我已經看了WMI和Win32_LogicalDisk類。我可以確定哪些驅動器安裝到驅動器盤符,但不能安裝到文件夾。 Win32_Volume *和Win32_MountPoint類將是完美的,但在XP上不可用。
  3. 我試過使用FindFirstVolume輪詢驅動器& GetVolumePathNamesForVolumeName(儘管我寧願不這樣做),但看起來驅動器必須在啓動之前就可以提供信息。再次,投票。

我正在考慮使用API​​鉤子鉤到SetVolumeMountPoint和DeleteVolumeMountPoint電話的可能性,但我不認爲這會趕上一切,好像這可能是一個醜陋的黑客無論如何。

所以,是的,我正在尋找的建議:)

回答

2

上SetVolumeMountPoint API鉤子應該讓你攔截卷安裝。雖然我不確定網絡共享。

但它不會是一個'醜陋的黑客'。你想要做的是在Windows中內置什麼鉤子。 Codeproject.com有關API掛鉤的很好的教程:http://www.codeproject.com/KB/system/hooksys.aspx

所以,你實際上說明了你自己的最佳解決方案。請記住,驅動器號還有一個單獨的API:http://nukz.net/reference/fileio/hh/winbase/fsys_6j8z.htm

您的項目聽起來很有趣。通常情況下,木馬和反病毒試圖做到這一點(他們也捕獲網絡共享。)我只是隨便熟悉這個主題,所以我希望這有助於。