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