Const CDROM = 4 For Each d in CreateObject("Scripting.FileSystemObject").Drives If d.DriveType = CDROM Then Eject d.DriveLetter & ":\" End If Next
Sub Eject(sDriveLetter) Dim ssfDrives Dim oShell ssfDrives = 17 CreateObject("Shell.Application")_ .Namespace(ssfDrives).ParseName(sDriveLetter).InvokeVerb("Eject") End Sub
您可以使用免费软件实用程序NirCmd(NirSoft:下载 zip 文件)并使用 Windows Scheduling 每分钟运行一次此语句:
(例子)
不确定是否确实存在确切的工具,但这里有一个小型命令行实用程序,可以安排为每 1-5-10-60 分钟运行一次。
那么,打开的 CD 托盘到底有什么危害呢?
当然,有人可能会破坏它,但也许他会从中吸取教训(至少如果您需要 loooong 来更换损坏的驱动器)。
另一方面,自动关闭托盘只会惹恼您的用户群。你为什么要这样做?
对我来说,你的要求看起来像小孩子玩:他们不想按你的方式玩,所以你正在寻找用武力制造它们的方法。
请。长大。如果他们让托盘打开,真的会伤害你吗?
最好的和平解决方案:获得插槽式驱动器(Pioneer 曾经在那里建造,不知道他们是否仍然这样做):没有托盘,没有痛苦。
我打算发布这个列表,但是由于其他两个人已经提到了 NirCmd,我想你最好先检查一下;-)
只是从他们的机器中取出 CD 播放器?
但是计划任务可能非常烦人。如果任务恰好在用户打开托盘以插入 cd 后立即运行......并且 cd 在工作关闭托盘时运行到一半 ......
您可以使用这个方便的 VBS。我用它来弹出我的 Vista-running-on-a-mac 设置中的 CD。猜猜它应该双向工作
Const CDROM = 4 For Each d in CreateObject("Scripting.FileSystemObject").Drives If d.DriveType = CDROM Then Eject d.DriveLetter & ":\" End If Next
Sub Eject(sDriveLetter) Dim ssfDrives Dim oShell ssfDrives = 17 CreateObject("Shell.Application")_ .Namespace(ssfDrives).ParseName(sDriveLetter).InvokeVerb("Eject") End Sub
我同意thijs的意见。
无论如何,在 linux 机器上你可以尝试使用
eject -t
. 请参见手册页。YMMV。Ciao——布朗托