0

我的用户最近遇到了一个烦人的问题。

我有一个应用程序,它基本上从 cd、dvd 或 USB 驱动器中获取图像并将它们复制到网络。

完成复制后,它应该会自动弹出光盘。

问题是,当光盘完成复制并弹出时,需要很长时间。我的一位用户说她等了一个小时才完成关闭并弹出。

在发生这种情况的其他光盘上,用户会尝试点击物理弹出按钮,Windows 7 上的气泡会弹出并说请等到会话关闭后再弹出。

没有任何东西被刻录到光盘上,而且光盘不是 CD-RW 或 DVD-RW,所以我不明白为什么它需要关闭光盘上的会话。

有没有可能是最初刻录 cd 的人搞砸了?

到目前为止,在 250 多张光盘中,这只发生在其中的两张上,这让我相信这些光盘有问题。

这是我弹出驱动器的方法:

    private void Eject()
    {
        try
        {
            VolumeDeviceClass volumeDeviceClass = new VolumeDeviceClass();

            foreach (Volume device in volumeDeviceClass.Devices)
            {
                if (!device.IsUsb)
                    continue;

                if (device.LogicalDrive == null || (device.LogicalDrive.Length == 0))
                    continue;

                /* Should get down here if our device is a usb drive */
                device.Eject(true);
            }

            var sb = new StringBuilder();

            mciSendString("open " + _driveName.Substring(0, 2) + " type cdaudio alias cddrive", sb, 127, IntPtr.Zero);
            mciSendString("set cddrive door open", sb, 127, IntPtr.Zero);
        }
        catch (Exception ex)
        {
            ex.Log(ex.Message, Logger.Severity.Error, "Error ejecting CD drive: " + Environment.MachineName);
        }
    }
4

0 回答 0