18. januar 2005 - 19:38Der er
3 kommentarer og 1 løsning
problemer med kode til cd-rom drev
hej for et stykke tid siden her på eksperten fandt jeg en stump kode der kunne åbne og lukke et cd drev, den med mmsystem i uses og mci('open cd audio door') og mci('close cd audio door') men mit problem er at vis man kun har et enkelt cd drev siddende i maskinen (lige som mig) virker koden fint men på en af mine venners computer hvor han har et dvd drev og en cd brænder, der sker der ingen ting. er der nogen der kan forklare hvorfor og eventuelt hjælpe med noget kode der løser problemet
hej! Det samme problem havde jeg også haft en gang...jeg løst problemmet ved at lave en konfiguration form, der tjekkes den første CDROM/BRÆNDER og sættes denne som default driver, derpå i formen lav jeg en komboboks, der henter alle CDROM/BRÆNDER og lad bruger selv vælg én, og gem disse konfiguration i en fil konfig.dat (f.eks). Håber du følges min tank.
//åbner cd 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;
//lukker cd 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 <> 0 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;
procedure TForm1.Button1Click(Sender: TObject); begin opencd(drev.Drive); end;
procedure TForm1.Button2Click(Sender: TObject); begin closecd(drev.Drive); end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.