2013-06-09 1 views
2

내 창 양식에 내 애플리케이션에 버튼을 만들었습니다. 버튼을 클릭하면 CD 드라이브에 CD/DVD가 있는지 확인합니다. CD 드라이브에 CD/DVD가 있으면 미디어 플레이어가 응용 프로그램에 추가 한 Windows 미디어 플레이어에서 비디오 미디어를 시작합니다.CD 드라이브의 cd/dvd를 감지하고 창 미디어 플레이어에서 재생

지금까지 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(); 

    } 
} 
+0

[this] (http://www.codeproject.com/Articles/24544/Burning-and-Erasing-CD-DVD-Blu-ray-Media-with-C-an)을보십시오. –

+0

운영 체제가 이미이 작업을 수행하지 않습니까? –

답변

1

다음 코드는 작동합니다 : -

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 함수가 반환 (, 그것은 ++ C에 Win32 API를 호출을 만들기 위해 같이 DllImport를 사용 here 설명) 제로 (0)에 대한 TotalNumberOfFreeBytes 및 FreeBytesAvailable에 대한 CD-RW 드라이브의 디스크가 CD가 아닌 경우 모든 CD 요청.

+0

그러나 귀하의 응답 주셔서 감사합니다 나는 Visual Studio에서 C#을 사용하고 있습니다. @ Flot2011 – Xiong

+0

@ TonySstark : DllImport를 사용하여 C#에서 이러한 함수를 호출 할 수 있다고 말했기 때문입니다. 내 대답의 링크를 참조하십시오. – Flot2011

관련 문제