小弟对vb一窍不通...有劳各位帮助

解决方案 »

  1.   

    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long' 关闭光驱
    Private Sub cmd_close_Click()
    mciSendString "Set CDAudio Door Closed Wait", 0&, 0&, 0&
    End Sub
    '打开光驱
    Private Sub cmd_open_Click()
    mciSendString "Set CDAudio Door Open Wait", 0&, 0&, 0&
    End Sub
      

  2.   

    我想将代码保存为.vbs文件,然后运行光盘就弹出,是不是将上面的代码复制进去就行了?
      

  3.   


    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
    Sub OpenCDDoor()    mciSendString "Set CDAudio Door Open Wait", 0&, 0&, 0&End Sub
    Sub CloseCDDoor()    mciSendString "Set CDAudio Door Closed Wait", 0&, 0&, 0&End SubPrivate Sub Command1_Click()
        OpenCDDoor
    End SubPrivate Sub Command2_Click()
        CloseCDDoor
    End Sub
      

  4.   


    Private Declare Function CDdoor Lib "winmm.dll" Alias "mciSendStringA" _
    ( _
    ByVal lpstrCommand As String, _
    ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, _
    ByVal hwndCallback As Long _
    ) As Long'    CDOpen用来标示光驱开与关的状态Dim CDOpen As BooleanPrivate Sub Command1_Click()
        On Error Resume Next
         
        
        '  ‘如果关闭则打开,并且按钮做相应变化
        
        If CDOpen = False Then
        Call CDdoor("set CDAudio door open", 0, 0, 0)
        CDOpen = True
        Command1.Caption = "点击关闭光驱"
        Else
        
        '    否则关闭
        
        Call CDdoor("set CDAudio door closed", 0, 0, 0)
        CDOpen = False
        Command1.Caption = "点击打开光驱"
        End If
    End SubPrivate Sub Form_Load()
        CDOpen = False
        Call CDdoor("set CDAudio door closed", 0, 0, 0)
    End Sub
      

  5.   

    CDdoor函数是安装WINDOWS时所自带的winmm.dll文件中包含的函数
    将代码编译成exe文件
      

  6.   

    我对编程一窍不通的,谢谢这位大哥...能将其编成exe文件发到我邮箱吗? [email protected]
      

  7.   

    lihonggen0(李洪根,MS MVP,标准答案来了) 大哥,zjckwht(风尘少侠) 的方法,你还干吗重复一遍。这可是有买弄之嫌,或者说灌水之意。
      

  8.   

    上面是两种不同的方法
    一个是:   mciSendString 
    另一个是:CDdoor
      

  9.   

    最好能把 
    mciSendString "Set CDAudio Door Open Wait", 0&, 0&, 0&上参数的意思解释下,如0& 。方便的话。
      

  10.   

    Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long参数说明:
    lpstrCommand:要发送的命令字符串.字符串结构是:[命令][设备别名][命令参数].
    lpstrReturnString:返回信息的缓冲区,为一指定了大小的字符串变量.
    uReturnLength:缓冲区的大小,就是字符变量的长度.
    hwndCallback:回调方式,一般设为零.(*函数执行成功返回零,否则返回错误代码)----------------------------------
    mciSendString "Set CDAudio Door Open Wait", 0&, 0&, 0&后面参数是设置缓冲区的,在这个命令中,没有使用缓冲区,设为0
      

  11.   

    提供个可以打开指盘符的光驱的vc代码,懒于将它转成vb了,楼主看着办吧#include <windows.h>
    #include <string.h>
    void CDRomOpen(BOOL bOpenDrive,TCHAR cDrive)
    {
    MCI_OPEN_PARMS open;
    MCI_STATUS_PARMS status;
    DWORD flags;
    TCHAR szDriveName[4];
    strcpy(szDriveName,"?:");
    ::ZeroMemory(&open,sizeof(MCI_OPEN_PARMS));
    open.lpstrDeviceType=(LPCSTR)MCI_DEVTYPE_CD_AUDIO;
    szDriveName[0]=cDrive;
    open.lpstrElementName=szDriveName;
    flags=MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_OPEN_ELEMENT|MCI_OPEN_SHAREABLE;
    if(!mciSendCommand(0,MCI_OPEN,flags,(unsigned long)&open)){
    status.dwItem=MCI_STATUS_READY;
    if(bOpenDrive)
    mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_OPEN,0);
    else
    mciSendCommand(open.wDeviceID,MCI_SET,MCI_SET_DOOR_CLOSED,0);
    mciSendCommand(open.wDeviceID,MCI_CLOSE,MCI_WAIT,0);
    }
    }int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
      // TODO: Place code here.
    TCHAR cdDrive;
    if(lpCmdLine!=""){
    cdDrive=*lpCmdLine;
    CDRomOpen(true,cdDrive);
    if(MessageBox(NULL,"是否关闭CDROM","关闭CDROm", MB_YESNO|MB_ICONQUESTION)
    ==IDYES)
    CDRomOpen(false,cdDrive);
    }
    else {
    mciSendString("Set cdaudio door open wait", "", 0, 0);
    if(MessageBox(NULL,"是否关闭CDROM","关闭CDROm", MB_YESNO|MB_ICONQUESTION)
    ==IDYES)
    mciSendString ("Set cdaudio door closed wait", "", 0, 0);
    } return 0 ;
    }