CD nyitás

CD nyitás
2005-11-29T14:39:00+01:00
2005-11-29T15:17:15+01:00
2022-10-27T22:32:18+02:00
lockojo
Sziasztok!

Végignéztem az itt lévő témát amit találtam ezzel kapcsolatban de nem akar működni, meg sem moccan az ajtó.
Azt szeretném elérni, hogyha rányomsz az adott gombra akkor nyíljon ki az alapértelmezett CD meghajtó.

Előre is köszönöm a segítséget!
Mutasd a teljes hozzászólást!
uses MMSystem open CD-ROM: mciSendString('Set cdaudio door open wait', nil, 0, handle); close CD-ROM: mciSendString('Set cdaudio door closed wait', nil, 0, handle);
Mutasd a teljes hozzászólást!

  • Ohh, király
    Köszi szépen
    Mutasd a teljes hozzászólást!
  • Hello!

    Vagy:

    uses MMSystem; //kinyitás function OpenCD(Drive: Char): Boolean; var Res: MciError; OpenParm: TMCI_Open_Parms; Flags: DWORD; S: string; DeviceID: Word; begin Result := False; S := Drive + ':'; Flags := MCI_OPEN_TYPE or MCI_OPEN_ELEMENT; with OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; lpstrElementName := PChar(S); end; Res := mciSendCommand(0, MCI_OPEN, Flags, Longint(@OpenParm)); if Res <> 0 then Exit; DeviceID := OpenParm.wDeviceID; try Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0); if Res = 0 then Exit; Result := True; finally mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm)); end; end; //bezárás function CloseCD(Drive: Char): Boolean; var Res: MciError; OpenParm: TMCI_Open_Parms; Flags: DWORD; S: string; DeviceID: Word; begin Result := False; S := Drive + ':'; Flags := MCI_OPEN_TYPE or MCI_OPEN_ELEMENT; with OpenParm do begin dwCallback := 0; lpstrDeviceType := 'CDAudio'; lpstrElementName := PChar(S); end; Res := mciSendCommand(0, MCI_OPEN, Flags, Longint(@OpenParm)); if Res <> then Exit; DeviceID := OpenParm.wDeviceID; try Res := mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0); if Res = 0 then Exit; Result := True; finally mciSendCommand(DeviceID, MCI_CLOSE, Flags, Longint(@OpenParm)); end; end;

    Ez kicsit bonyolultabb, de megadhatod melyik meghajtót nyissa ki vagy zárja be!

    Robertoq
    Mutasd a teljes hozzászólást!
  • Sziasztok esetleg c++ ban is megtudod adni?
    meköszönném
    Mutasd a teljes hozzászólást!
  • Robertoq megoldása sokkal célravezetőbb, mert több cd drive is lehet egy gépben! Bonyolultabb ugyan megírni (amit így már nem kell ), de jobb!

    Én írtam már egy egyszerübbet. Ennek nem tudod megmondani, hogy nyissa vagy csukja, hanem ha nyitva van, akkor csukja, ha csukva van, akkor nyitja. De egy mozdulat átalakítani, ha így nem jó.
    Ime:
    procedure TCDManage.switchCDTrayState(drive: char); const LIMIT:dword = 500; // ms var st:dword; begin mciSendString(PChar('open cdaudio!'+drive+': alias MyCDDriveX'),nil,0,FOwner); st:=GetTickCount; mciSendString('set MyCDDriveX door open',nil,0,FOwner); if ((st+500)>GetTickCount) then mciSendString('set MyCDDriveX door closed',nil,0,FOwner); mciSendString(PChar('close MyCDDriveX'),nil,0,FOwner); end;
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd