谢谢您的帮助。自从询问以来,我发现至少在 Windows 7 中,但可能在其他版本的 Windows 中,就在 CD 驱动器进行写入之前,它会在 CD 驱动器上进行独占锁定。这在 MSFT 上的 IMAPI 参考 dox 中进行了讨论。这实际上是由几乎每个刻录应用程序完成的,而不仅仅是文件资源管理器,以防止多个事情弄乱写入过程。
cdrom 会向系统发送一个 id 代码为 133 的事件,可以对其进行监视以检测何时开始刻录。此事件似乎仅在刻录开始时生成,而不是由 OP 中讨论的其他事件生成。
下面的代码片段将附加一个事件监听器,当事件出现时它会做出反应。
我不太了解powershell或windows,所以如果有人对这个例子有更好的建议,我欢迎提出建议 ,但这似乎是有用的。
$WMI = @{
Query = "select * from __InstanceCreationEvent
where TargetInstance isa 'Win32_NtLogEvent'
and TargetInstance.logfile = 'System'
and TargetInstance.SourceName = 'cdrom'
and TargetInstance.EventCode = '133'"
Action = {
write-host "CD Burn started"
}
}
$Null = Register-WMIEvent @WMI