Взаимодействие с CD/DVD приводом.


Подключаем пространство имён для работы с DLL библиотеками
PHP код:
using System.Runtime.InteropServices
Для работы с текстом
PHP код:
using System.Text
Для работы с типом, который используется для представления указателя и дескриптора да и системными функциями вовсе
PHP код:
using System


Теперь помещаем этот код в необходимый класс, в моём случае это Program
PHP код:
[DllImport("winmm.dll")]
static 
extern int mciSendString(string commandStringBuilder bufferint bufferSizeIntPtr hwndCallback);

/// <summary>
/// Открыть CD/DVD привод
/// </summary>
/// <param name="name">Буква привода</param>
public static void OpenDrive(string name)
{
    
mciSendString($"open {name}: type CDAudio alias drive{name}"null0IntPtr.Zero);
    
mciSendString($"set drive{name} door open"null0IntPtr.Zero);
}

/// <summary>
/// Закрыть CD/DVD привод
/// </summary>
/// <param name="name">Буква привода</param>
public static void CloseDrive(string name)
{
    
mciSendString($"set drive{name} door closed"null0IntPtr.Zero);

Функции

PHP код:
OpenDrive(string name
Открытие привода
  • name - буква привода


PHP код:
CloseDrive(string name
Закрытие привода
  • name - буква привода



Пример работы:
PHP код:
public static void Main()
{
    
// Открываем привод, где E - буква привода
    
OpenDrive("E");
    
// Ждём 5 секунд
    
System.Threading.Thread.Sleep(5000);
    
// Закрываем привод
    
CloseDrive("E");