Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式打开CD托槽_C#_.net - Fatal编程技术网

C# 以编程方式打开CD托槽

C# 以编程方式打开CD托槽,c#,.net,C#,.net,我想在Windows中用C#创建一个小程序,可以打开CD驱动器舌片-如果有,请弹出CD。我想知道从何处开始。由于有一个名为mciSendStringA的有用API函数,在C#中以编程方式打开和关闭磁盘驱动器并不那么困难 首先,您需要定义打开磁盘托盘的功能: [DllImport("winmm.dll", EntryPoint = "mciSendString")] public static extern int mciSendStringA(string lpstrCommand, strin

我想在Windows中用C#创建一个小程序,可以打开CD驱动器舌片-如果有,请弹出CD。我想知道从何处开始。

由于有一个名为mciSendStringA的有用API函数,在C#中以编程方式打开和关闭磁盘驱动器并不那么困难

首先,您需要定义打开磁盘托盘的功能:

[DllImport("winmm.dll", EntryPoint = "mciSendString")]
public static extern int mciSendStringA(string lpstrCommand, string lpstrReturnString, 
                            int uReturnLength, int hwndCallback);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door open", returnString, 0, 0);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door closed", returnString, 0, 0);
如果上面的代码未编译,请尝试在源代码的最顶端添加以下C行:

using System.Runtime.InteropServices;
打开磁盘驱动器

要打开磁盘驱动器,需要使用mciSendStringA发送两个命令字符串。第一个将为所需的驱动器指定一个名称。第二个命令将实际打开磁盘托盘:

[DllImport("winmm.dll", EntryPoint = "mciSendString")]
public static extern int mciSendStringA(string lpstrCommand, string lpstrReturnString, 
                            int uReturnLength, int hwndCallback);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door open", returnString, 0, 0);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door closed", returnString, 0, 0);
关闭磁盘驱动器

要关闭磁盘驱动器,需要再次发送两个命令字符串。第一个将是相同的。第二个命令现在将关闭磁盘托盘:

[DllImport("winmm.dll", EntryPoint = "mciSendString")]
public static extern int mciSendStringA(string lpstrCommand, string lpstrReturnString, 
                            int uReturnLength, int hwndCallback);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door open", returnString, 0, 0);
mciSendStringA("open " + driveLetter + ": type CDaudio alias drive" + driveLetter, 
                 returnString, 0, 0);
mciSendStringA("set drive" + driveLetter + " door closed", returnString, 0, 0);

非常感谢,我对学习更多这些API很感兴趣。你知道好的教程吗?重复: