Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Load-/Eject-Media (https://www.delphipraxis.net/78116-load-eject-media.html)

Tonki 29. Sep 2006 11:06


Load-/Eject-Media
 
hi zusammen :)

hm hab eine kleine frage!
vorweg:
ich weiss leider nicht ganz genau welche delphi version ich nutze (nummer). hab mir hier aus dem forum (Link) turbo delphi (deutsch) runter geladen! nur falls fragen wegen version aufkommen ^^

nun zu meinem problem!

ich habe versucht mir ein einfaches programm zu schreiben mit 2 buttons. jeder button soll eins meiner DVD laufwerke öffnen (wenn geschlossen) und auch schließen (wenn offen). nun hab ich dafür ein tutorial gesucht und hab hier auch eins gefunden (Laufwerks Tutorial) aber der code der da steht funktioniert bei mir teilweise nicht... der befehl "Loadmedia" und "Ejectmedia" wird als fehler gekennzeichnet! das obere beispiel von der Tutorial seite wirft sogar nochmehr fehler ein...
da ich noch ganz am anfang mit delphi stehe weiss ich nicht weiter =( hab schon jemanden aus dem forum um hilfe gebeten der mir angeboten hat wenn ich ne frage hab sie ihm zu schreiben aber er ist auch ratlos...

ich hoffe ihr könnt mir bei meinem problemchen helfen!

liebe grüße

Tonki

mkinzler 29. Sep 2006 11:08

Re: Load-/Eject-Media
 
Zeig mal deinen Code.

OldGrumpy 29. Sep 2006 11:10

Re: Load-/Eject-Media
 
Na zum einen solltest Du uns schonmal zeigen, was Du da an Code gebaut hast, zum anderen ist *IMMER* die konkrete Fehlermeldung (am besten komplett per Kopieren und Einfügen in den Post packen) wichtig, um gezielt antworten zu können.

Edit: mkinzler war schneller ;)

Tonki 29. Sep 2006 12:37

Re: Load-/Eject-Media
 
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
Loadmedia ('D')
end;

end.
hab noch keine namen etc vergeben weil ich wegen dem problemchen nich weiter komm also nich wundern das alles noch standartwerte hat ;)
und es kommt die fehlermeldung:
"Nicht deklarierter Bezeichner 'LoadMedia' in Zeile 28 (28:1)."

damit kann ich leider nichts anfangen :(

mkinzler 29. Sep 2006 12:43

Re: Load-/Eject-Media
 
Du hast ja nur den Aufruf eingebaut. Die Implemnetierung der Funktion fehlt natürlich noch, baue diese auch noch ein.

Nicolai1234 29. Sep 2006 13:27

Re: Load-/Eject-Media
 
Zitat:

Zitat von Tonki
ich weiss leider nicht ganz genau welche delphi version ich nutze (nummer). hab mir hier aus dem forum (Link) turbo delphi (deutsch) runter geladen! nur falls fragen wegen version aufkommen ^^

Falls die Frage nochmal aufkommt, kannst du sagen, dass du Turbo Delphi 2006 (TD 2006)hast. Eventuell noch für Win32. Dann weiß jeder, was gemeint ist.

Tonki 29. Sep 2006 14:41

Re: Load-/Eject-Media
 
Zitat:

Zitat von mkinzler
Du hast ja nur den Aufruf eingebaut. Die Implemnetierung der Funktion fehlt natürlich noch, baue diese auch noch ein.

hm tut mir leid aber ich weiss nicht was du damit meinst :oops: kannst du mir das bitte genauer erklären?


Zitat:

Zitat von Nicolai1605
Zitat:

Zitat von Tonki
ich weiss leider nicht ganz genau welche delphi version ich nutze (nummer). hab mir hier aus dem forum (Link) turbo delphi (deutsch) runter geladen! nur falls fragen wegen version aufkommen ^^

Falls die Frage nochmal aufkommt, kannst du sagen, dass du Turbo Delphi 2006 (TD 2006)hast. Eventuell noch für Win32. Dann weiß jeder, was gemeint ist.

ah ok danke is notiert!

mkinzler 29. Sep 2006 14:59

Re: Load-/Eject-Media
 
Du rufst die Funktion auf. Die Implemnetierung der Funktion befindet sich im 1. Quelltext im verlinkten Beitrag deines ersten Beitrages.

Tonki 29. Sep 2006 16:22

Re: Load-/Eject-Media
 
aaaah ok :)

aber jetzt hat sich ein neues problem aufgetahn *seufz*

das programm startet jetzt, es gibt auch keine fehlermeldungen mehr aber wenn ich auf den button klicke passiert nichts... normalerweise müsste mein DVD Laufwerk aufgehn... hab extra geschaut das laufwerk heisst D und so stehts auch im code... jemand ne idee?


hier der Code:
Delphi-Quellcode:
unit Laufwerke;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}


 const
  IOCTL_STORAGE_EJECT_MEDIA = $2D4808;
  IOCTL_STORAGE_LOAD_MEDIA = $2D480C;

//Fährt die Schublade ein
function LoadMedia(DriveLetter: String): Boolean;
var
  hr:THandle;
  buffer: Cardinal;
begin
  hr := CreateFile(PChar('\\.\'+DriveLetter+':'), GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0);
  if hr <> INVALID_HANDLE_VALUE then
    if DeviceIOControl(hr, IOCTL_STORAGE_LOAD_MEDIA, NIL, 0, NIL, 0, buffer, NIL) then
      result := true
     else
      result := false;
    CloseHandle(hr);
end;

procedure TForm2.Button1Click(Sender: TObject);

begin
Loadmedia ('D')
end;

end.

Balu der Bär 29. Sep 2006 16:28

Re: Load-/Eject-Media
 
Delphi-Quellcode:
//Fährt die Schublade ein
In deinem Quelltext steht es doch schon, dass Laufwerk wird geschlossen wenn es bereits geöffnet ist. Das Öffnen bzw Ausfahren des Laufwerkes macht dieser Code nicht. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz