在CD驱动器中检测cd / dvd并在窗口媒体播放器上播放

时间:2013-06-09 20:33:56

标签: c# winforms

在我的窗口表单上的

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

到目前为止,我只能创建一个打开的对话框,从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();

    }
}

1 个答案:

答案 0 :(得分:1)

以下代码应该有效:(在C ++中,使用DllImport进行Win32 API调用 - 解释here

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
          }
   }
}

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