Avatar billede psycosoft-funware Nybegynder
18. januar 2005 - 19:38 Der 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

på forhånd tak
Avatar billede lavang Nybegynder
20. januar 2005 - 00:57 #1
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.

Hilsen
Lavang
Avatar billede psycosoft-funware Nybegynder
20. januar 2005 - 09:27 #2
jeg vil mere hen i retnigen af ingen konfig og så kunne åbne alle drev i computeren på en gang lige som alcohol 120%
Avatar billede stone Forsker
25. januar 2005 - 00:32 #3
her i eksemplet har jeg brugt en TDriveComboBox, kaldet til funktioen kan du også gøre via en button eller lign. skriv " opencd(D) " og " close(D) "

husk mmsystem i USES

-------------------------------------------------------------------------------------

//å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;

end.
Avatar billede psycosoft-funware Nybegynder
05. oktober 2005 - 09:55 #4
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester