2

在我的窗口窗体上,我在我的应用程序上创建了一个按钮。当我单击该按钮时,它将检查 CD 驱动器中是否有任何 CD/DVD。如果 CD 驱动器中有 CD/DVD,媒体播放器将在我添加到应用程序的 windows 媒体播放器上启动视频媒体。

到目前为止,我只能创建打开对话框以从 CD 中选择并播放它们。谁能建议我应该使用什么来检测驱动器中的 CD 媒体?

编辑://对不起,我对 C# 不是很好,所以你们能解释一下你们提供的教程吗?

    private void Runbtn_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.currentPlaylist = axWindowsMediaPlayer1.mediaCollection.getByName("mediafile");


    }

    private void Stopbtn_Click(object sender, EventArgs e)
    {
        axWindowsMediaPlayer1.Ctlcontrols.stop();

    }
}
4

1 回答 1

1

以下代码应该可以工作:(它在 C++ 中,使用 DllImport 进行 Win32 API 调用 -在这里解释)

char szDrives[MAX_PATH];      
long TotalNumberOfFreeBytes  = 0;
long FreeBytesAvailable = 0;

// Get all the drives on your system. Divide by 4 as strlen("C:\") ==  4
int noOfDrives =(GetLogicalDriveStrings(MAX_PATH,szDrives)/4);

for(int i=0;i<noOfDrives ;i++)
{
   // find CD ROM drives
   if (DRIVE_CDROM == GetDriveType(&drivestr[i*4]))
   {  
          if(!GetDiskFreeSpaceEx(&drivestr[i*4],
               &FreeBytesAvailable,
               NULL,
               &TotalNumberOfFreeBytes  ))
          {
             // Disk in drive, enumerate files 
             // using FindFirstFile/FindNextFile
             // and play video if any
          }
   }
}

GetDiskFreeSpaceEx 函数为 TotalNumberOfFreeBytes 和 FreeBytesAvailable 为所有 CD 请求返回零 (0),除非磁盘是 CD-RW 驱动器中的未写入 CD。

于 2013-06-10T12:28:11.700 回答