Holger Stehle

Softwareentwicklung und -architektur

« Laufwerksschacht öffnen und schließen

In ein paar anderen Artikeln haben wir bereits externe Funktionalität per DllImport verwendet, was wir nun nochmals benötigen werden. Diesmal soll es darum gehen, den Laufwerksschacht zu öffnen und zu schließen.

Wir implementieren dazu folgende (sehr einfache) Klasse:

public static class DiskTray {
    public static void Close() {
        mciSendString("set CDAudio door closed", null, 0, IntPtr.Zero);
    }

    public static void Open() {
        mciSendString("set CDAudio door open", null, 0, IntPtr.Zero);
    }


    [DllImport("winmm")]
    private static extern int mciSendString(
        string lpstrCommand,
        string lpstrReturnString,
        int uReturnLength,
        IntPtr hwndCallback
    );
}

Die Verwendung – beispielsweise im Rahmen einer Fernwartung – gestaltet sich nun äußerst einfach:

DiskTray.Open();   // öffnen
DiskTray.Close();  // schließen

Für interessierte Leser finden sich im MSDN weiterführende Informationen zu mciSendString.