RT
使用mciSendString方法MS只能控制一个光驱
public static extern int mciSendString (string lpstrCommand,string lpstrReturnstring ,int uReturnLength,int hwndCallback);
private void opencdrom_Click(object sender, System.EventArgs e)
{
long lngReturn = mciSendString("set CDAudio door open", null, 127, 0);
}private void closecdrom_Click(object sender, System.EventArgs e)
{
long lngReturn = mciSendString("set CDAudio door closed", null, 127, 0);
} 如果有两个光驱的话怎么实现?
G:和H:都是光驱,我想打开G就打开G,想打开H就打开H
使用mciSendString方法MS只能控制一个光驱
public static extern int mciSendString (string lpstrCommand,string lpstrReturnstring ,int uReturnLength,int hwndCallback);
private void opencdrom_Click(object sender, System.EventArgs e)
{
long lngReturn = mciSendString("set CDAudio door open", null, 127, 0);
}private void closecdrom_Click(object sender, System.EventArgs e)
{
long lngReturn = mciSendString("set CDAudio door closed", null, 127, 0);
} 如果有两个光驱的话怎么实现?
G:和H:都是光驱,我想打开G就打开G,想打开H就打开H
解决方案 »
- 好几天了没有解决项目卡着,ASP.NET执行事务中的 INERT 多了4倍的数据
- 感觉我可以学习C#了,他和Java简直太相似了。代码基本能看懂。
- datagridview显示日期字段是出错的问题
- 有人做过条形码读取分析的程序吗?
- 求教错误解决方案Error:“该行已经属于另一个表”
- nant + assembly.loadfrom
- 用C可以写系统OS,DATABASE...为什么高级的C#,java,vb,delphi..不能呢??
- 请教一个C#中如何将窗体中的内容打印出来!!!谢谢
- 怎样才能取到库中字段的类型长度?
- 进程间消息传递问题:
- 求高手帮忙排除下我的代码异常,搞了我好久 万分感谢!
- 调用 ACM 把PCM压缩成ADPCM,Adpcm的数据量不是 ACM的 1/4
mcisendString发送MCI命令好像只能控制主光驱。要控制多光驱必须用其他API函数DeviceIoControl。
还可使用CDdoor
private static extern long CDdoor(string lpstrCommand, string lpstrReturnString, long uReturnLength, long hwndCallback);
但是网上都是C++的代码,有几个地方在C#里不知道怎么写尤其是
MCI_OPEN
MCI_WAIT
MCI_OPEN_TYPE_ID
MCI_OPEN_TYPE
这几个参数都是多少,转换完以后应该是uint类型的,但是C#没有这些类型,我不知道怎么声明谁能帮我看看
网上代码(大部分都是这个)
http://dev.csdn.net/article/8/8449.shtm
MCI_OPEN_PARMS op;
MCI_STATUS_PARMS st;
uint flags; //下面这两句什么意思?好像是处理字符串
char[] szDriveName=new char[4];
strcpy(szDriveName, "X:");
//下面的两句是什么意思?给OP赋值??
::ZeroMemory(&op, sizeof(MCI_OPEN_PARMS));
op.lpstrDeviceType = MCI_DEVTYPE_CD_AUDIO;
//下面的'|'代表什么?逻辑或?
flags = MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID | MCI_OPEN_ELEMENT| MCI_OPEN_SHAREABLE;
}
//最后的那个(unsigned long)&op)什么意思
if (!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&op))