用vbs确定可移动驱动器的连接时间

2019-01-16 09:56:27王旭

为什么这样做?有两个原因:首先,我们并不关心现有实例所发生的任何变化。例如,我们并不关心驱动器 C 上的可用驱动器空间是否发生了变化。如果您看一下 Select Case 代码,您就会注意到我们并不去费神检查 __InstanceModificationEvent。为什么不呢?因为我们并不关心 __InstanceModificationEvent(以某种方式修改现有实例时生成的事件的类型)。
其次,我们想要对 __InstanceCreationEvent(它会告诉我们已经创建了一个新驱动器)和 __InstanceDeletionEvent(它会告诉我们已经删除了一个现有驱动器)加以区别。通过确定事件类型,我们可以回显不同(并相应)的消息。例如,下面是用于确定是否创建了新驱动器的代码,如果是,则回显一条用于指示该结果的消息:
Case "__InstanceCreationEvent"
    Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
        " has been added."
下面是用于通知我们是否删除了现有驱动器的代码:
Case "__InstanceDeletionEvent"
    Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _
        " has been removed."
回显相应的消息后,我们再循环并等待下一个事件的发生。默认情况下,该脚本将永远运行下去,或者至少在您终止该脚本进程之前会是这样。先发生哪种情况就先执行哪段代码。
正如我们说过的,这并不是您真正想要的,但是它确实能够达到这一目的。哦,不要忘了附加价值和灵活性。这应该足以弥补一个事实,那就是我们并没有真正回答您的问题。(我们希望我们已经解答了该问题的一个方面。不过这不是您的问题。)