Отваряне и затваряне на диска - Мултимедия - Програмиране на Visual Basic - интересни статии

Ако се напише програма, свързана с медиите, най-вероятно ще трябва да се отваря и затваря CD-ROM софтуер. Обикновено се препоръчва да се използва API-функция mciSendString на winmm.dll библиотека. Нейният декларация:

Тази функция изпраща команден ред мултимедийни устройства. Отворете отделението за диска, можете да:

Екип за управление на закриването:

Но какво, ако потребителят на компютъра има две (като имам) или CD-ROM диск? Предложените по-горе функции ще бъдат отворени-близо само едно устройство. В този случай, дойде в API-функция DeviceIoControl за помощ на ниско ниво. Тук е нейната декларация.

Както се вижда от декларацията, първия параметър на функцията - част от описание на желаното устройство за нас. Това може да се получи с помощта на прекрасна функция CreateFile.

Получената дръжката, когато тя вече не е необходима, не забравяйте да изключите чрез функцията CloseHandle:

Има една тънкост, когато се обаждате CreateFile - за задвижване на начина, по който трябва да добавите префикс пред "# 92; # 92; # 92; .." за функция "знае", че си имаме работа с едно устройство, а не на диск папка. По този начин, за буквата Е, параметър lpFileName ще има формата:

На първо място, ние заявяваме необходимите константи.

Но основният "Тайната", константи за DeviceIoControl. Тези стойности не са намерени в заглавните файлове. Те са получили от прилагането на специални макроси в Visual C ++ среда:

Сега, когато имаме всичко подготвени, напиши функция, която се отваря устройството (в случая на възвръщаемост False недостатъчност):

Затваря LoadCD диск. Тя ще се различават само по това, че вместо постоянно IOCTL_STORAGE_EJECT_MEDIA заместител IOCTL_STORAGE_LOAD_MEDIA.

Не е много лесно, но в действителност тя работи! След тестване на функции, можете да създадете един клас за работа с дискове, го включи в проекта на ActiveX DLL или EXE, изготвят, и да го забравя като кошмар.

Бъдете внимателни с DeviceIoControl на функция. Можете да го използвате, все повече и формат дискове. в постоянна грешка - и голяма здравей!