用户创build安装点时如何获得通知?

首先,这里是约束条件:

  • 必须在XP上运行
  • 必须通知两个驱动器号分配并将卷挂载到文件夹
  • 如果正在睡觉,不得“唤醒”驱动器。
  • 我真的不想投票驱动器。

我试过了:

  1. 谷歌
  2. 我看了WMI和Win32_LogicalDisk类。 我可以确定哪些驱动器挂载到一个驱动器号,但不挂载到一个文件夹。 Win32_Volume *和Win32_MountPoint类将是完美的,但在XP上不可用。
  3. 我已经尝试使用FindFirstVolume&GetVolumePathNamesForVolumeName轮询驱动器(尽pipe我宁愿不这样做),但看起来驱动器必须旋转起来,才能给我的信息。 再次,投票。

我正在考虑使用API​​挂钩将调用挂接到SetVolumeMountPoint和DeleteVolumeMountPoint的可能性,但我不认为这将抓住一切,似乎这可能是一个丑陋的黑客无论如何。

所以,是的,我正在寻找build议:)

挂在SetVolumeMountPoint上的API应该让你拦截卷装载。 虽然我不确定网络共享。

但这不会是一个“丑陋的黑客”。 你要做的是在Windows中内置什么钩子。 Codeproject.com有很好的关于API hooking的教程: http : //www.codeproject.com/KB/system/hooksys.aspx

所以你真的说出了自己的最佳解决方案。 请记住,驱动器号还有一个单独的API: http : //nukz.net/reference/fileio/hh/winbase/fsys_6j8z.htm

你的项目听起来有趣。 通常情况下,木马和反病毒试图做到这一点(他们也捕捉网络共享。)我只是随便熟悉这个话题,所以我希望这有助于。