我在我的应用程序上创建了一个按钮。当我点击按钮时,它将检查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();
}
}
答案 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。