CD-Rom Funktionen



  • Moin!
    Ich habe unter Borland cpp einfach ein Fenster mit 2 Buttons erstellt und dann einfach
    #include <windows.h>

    BOOL DoOpenCdRom(void)
    {
    char chrRc[256];
    char *ptrChrRc = &chrRc[0];
    return mciSendString("Set CDAudio Door Open\0",ptrChrRc,256,NULL);

    }

    BOOL DoCloseCdRom(void)
    {

    char chrRc[256];
    char *ptrChrRc = &chrRc[0];
    return mciSendString("Set CDAudio Door Closed\0",ptrChrRc,256,NULL);
    }
    eingesetzt.
    Zum öffnen des Laufwerks habe ich für Button1 DoOpenCdRom(); eingegeben und für Button2 zum schiliessen DoCloseCdRom();.

    Ich bekomme aber immer die fehlermeldung "Call to udefined function 'mciSendString'.

    Was mache ich falsch? 😕



  • Ich habe jetzt nur mal so auf die Schnelle nachgesehen.

    Wahrscheinlich mußt Du noch die mmsystem.h oder vfw.h includen.

    MfG JB



  • return möchte den Wert an die Fuction übergeben. Die existiert aber nicht. Du mußt sie in der Unit1.h (deine Form.h) im privaten Teil declarieren und in der Unit1.cpp dazusetzen und mit Leben füllen.



  • wieso immer so kompliziert?

    //---------------------------------------------------------------------------
    #include <mmsystem.h>
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      mciSendString(PCHAR("set cdaudio door open"), NULL, 0, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
      mciSendString(PCHAR("set cdaudio door closed"), NULL, 0, 0);
    }
    //---------------------------------------------------------------------------
    


  • Warum immer so kompliziert?

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      mciSendString("set cdaudio door open", 0, 0, 0);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
      mciSendString("set cdaudio door closed", 0, 0, 0);
    }
    

    😃



  • wieso immer so kompliziert?
    Weil ich mir eben 2 Daemonen gebaut hab, @Sunday. 🕶 Ich kannte die mmsystem.h noch nicht und hatte mich mit sowas auch noch nicht befasst.

    __fastcall TCDClose::TCDOpen(TComponent* Owner)
      : TForm(Owner)
    {
        mciSendString(PCHAR("set cdaudio door open"), NULL, 0, 0);
        Application->Terminate();
    }
    

    Die Form ist auf WindowState = wsMinimized gestellt. Der Recorder öffnet/schließt, ein kurzer Ruck auf dem screen zur Kontrolle, sonst nichts. Ohne Taskleistenbutton sollte es auch ganz ohne optischen Effekt gehen. Zündung via Tastakombi.



  • *Oha*. @Jansen, wann weißt du mal nicht, wie man noch einen drauflegt? 😃



  • Jo! THX Sunday !
    Dein code funzt prima!
    (auserdem iss er auch kürzer)

    🙂 Nochmal Danke! 🙂



  • und wenn ich jetzt ein 2. laufwerk(brenner) habe,
    wie lautet dafür dann der code ?



  • ich hab auch schon alles ausprobiert, nur wie ich ein 2. Laufwerk öffne klappt nicht.

    würde mich über Hilfe sehr freuen.
    mfg
    Chiller



  • Nach einem Newsgroup-Beitrag von Michael Winter:

    bool SetCDTrayOpen(String strDriveLetter, bool bOpen)
    {
      bool result;
      String cmd = "open " + strDriveLetter + ": type cdaudio alias CDDrive";
      if (mciSendString(cmd.c_str(), 0, 0, 0))
        result = false;
      else
      {
        if (bOpen)
          cmd = "set CDDrive door open";
        else
          cmd = "set CDDrive door closed";
        mciSendString(cmd.c_str(), 0, 0, 0);
        mciSendString("close CDDrive", 0, 0, 0);
        result = true;
      }
      return result;
    }
    

Anmelden zum Antworten