Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测cd驱动器中的cd/dvd并在Windows media player上播放_C#_Winforms - Fatal编程技术网

C# 检测cd驱动器中的cd/dvd并在Windows media player上播放

C# 检测cd驱动器中的cd/dvd并在Windows media player上播放,c#,winforms,C#,Winforms,在我的窗口窗体上,我在应用程序上创建了一个按钮。当我单击该按钮时,它将检查CD驱动器中是否有CD/DVD。如果CD驱动器中有CD/DVD,媒体播放器将在我添加到应用程序的windows media player上启动视频媒体 到目前为止,我只能创建“打开”对话框,从CD中选择并播放它们。 有人能告诉我应该用什么来检测驱动器中的CD介质吗 EDIT://对不起,我对C不太在行,你们能解释一下你们提供的教程吗 private void Runbtn_Click(object sender,

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

到目前为止,我只能创建“打开”对话框,从CD中选择并播放它们。 有人能告诉我应该用什么来检测驱动器中的CD介质吗

EDIT://对不起,我对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();

    }
}

下面的代码应该工作:它是C++的,使用DLIMPORT来做Win32 API调用-解释< /P>


GetDiskFreeSpaceEx函数返回0表示所有CD请求可用的FreeBytes和FreeBytes总数,除非该磁盘是CD-RW驱动器中的未写入CD。

请看一看。操作系统是否已经这样做了?谢谢您的响应,但我在visual studio上使用C。-@Flot2011@TonySstark:如我所说,您可以使用DllImport从C调用这些函数。请参阅我答案中的链接。
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
          }
   }
}