Entwickler-Ecke

Windows API - DVD Laufwrk öffnen


am2pm - Di 05.06.07 21:15
Titel: DVD Laufwrk öffnen
wie oben genannt möchte ich das dvd laufwerk öffnen hab hier zwar schon ein paar quélltexte gefunden
aber dir klappen irgendwie nicht
mein dvd laufwerk hat die bezeichnung 'E' so kann mir da jemand helfen
kann mir jemand den quelltext für die anweisung zeigen


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Di 05.06.2007 um 21:22


Dunkel - Di 05.06.07 22:06

Guckst Du z.B. hier [http://www.delphi-forum.de/viewtopic.php?t=60577&highlight=laufwerk+%F6ffnen].


Blackheart666 - Di 05.06.07 22:15

Ist doch immer gern gesehen das sich jemand findet der einem die allzu schwere Suche abnimmt. :wink:


Dunkel - Di 05.06.07 22:24

user profile iconBlackheart666 hat folgendes geschrieben:
Ist doch immer gern gesehen das sich jemand findet der einem die allzu schwere Suche abnimmt. :wink:

:lol: Na, so einfach ist das nun auch wieder nicht! Bevor man sich der überaus schweren Aufgabe gegenüberstellt, die überaus komplizierte Suchfunktion des Forums zu benutzen, eröffnet man doch mal eben schnell ein neues Topic über ein Thema, das schon (mindestens) hundert mal komplett durchgekaut wurde... :roll:


am2pm - Do 07.06.07 17:48

user profile iconDunkel hat folgendes geschrieben:
Guckst Du z.B. [url=http://www.delphi-forum.de/viewtopic.php?t=60577&highlight=laufwerk+%F6ffnen]hier[/url].


wie schon oben beschrieben geht der dieser quelltext bei nicht es wäre nett wenn man mir
eine andere variante nennen könnte


UGrohne - Do 07.06.07 18:01

user profile iconam2pm hat folgendes geschrieben:
user profile iconDunkel hat folgendes geschrieben:
Guckst Du z.B. [url=http://www.delphi-forum.de/viewtopic.php?t=60577&highlight=laufwerk+%F6ffnen]hier[/url].


wie schon oben beschrieben geht der dieser quelltext bei nicht es wäre nett wenn man mir
eine andere variante nennen könnte

Dann musst Du das auch schreiben, dass Du diesen verwendet hast. Und was geht nicht? Explodiert der PC, wenn Du den Code ausführst?


Lannes - Do 07.06.07 18:08

Hallo,

hast Du die Unit MMSystem in uses eingebunden?


am2pm - Do 07.06.07 18:09

user profile iconUGrohne hat folgendes geschrieben:
user profile iconam2pm hat folgendes geschrieben:
user profile iconDunkel hat folgendes geschrieben:
Guckst Du z.B. [url=http://www.delphi-forum.de/viewtopic.php?t=60577&highlight=laufwerk+%F6ffnen]hier[/url].


wie schon oben beschrieben geht der dieser quelltext bei nicht es wäre nett wenn man mir
eine andere variante nennen könnte

Dann musst Du das auch schreiben, dass Du diesen verwendet hast. Und was geht nicht? Explodiert der PC, wenn Du den Code ausführst?


Richtig er expoldiert
nene die fehlermeldung die er sagt ist folgende fehlermeldung

undeclared identifie 'OpenCDDrive'

wo soll ich den declarieren


Leuchtturm - Do 07.06.07 18:12

Du sollst die Procedure deklarieren bei Tform1.


am2pm - Do 07.06.07 18:13

user profile iconLeuchtturm hat folgendes geschrieben:
Du sollst die Procedure deklarieren bei Tform1.


stimmt dsnke


am2pm - Do 07.06.07 18:16

jetzt kommt noch eine fehlermeldung

[Error] uLaufwerk.pas(28): Unsatisfied forward or external declaration: 'TForm1.OpenCDDrive'

habe die procedure bei private declariert


Leuchtturm - Do 07.06.07 18:19

Vor OpenCDDevice bei der Implementation TForm1. dazuschreiben


am2pm - Do 07.06.07 18:24

jetzt kommt

Undeclared identifier: 'TForm1'
'END' expected but 'CONST' found


Leuchtturm - Do 07.06.07 18:30

Zeig mal bitte die deklentaion und die Implementation :wink:


Christian S. - Do 07.06.07 18:31

Wenn ich mir die Gesamtheit Deiner Threads mal so ansehe, kann ich mir diesen Rat nicht verkneifen:

Beschäftige Dich mit den Grundlagen, anstatt Dir im Forum Deine Programme zusammenzukopieren! Lies ein paar Tutorials!

Grundlagen findest Du z.B hier: http://www.dsdt.info/grundlagen/
Oder auch hier: http://crashkurs.christian-stelzmann.de


Chatfix - Do 07.06.07 18:31

Zeig am besten mal den gesamten Quelltext.


am2pm - Do 07.06.07 18:32

lass das mal meine sorge sein was ich mache ich nur um hilfe gebeten


am2pm - Do 07.06.07 18:33

@ chatfix


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
unit uLaufwerk;

interface

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

type
  TForm1 = class(TForm)
    b1: TButton;
    b2: TButton;
    Gauge1: TGauge;
    Gauge2: TGauge;
    Button1: TButton;
    Button2: TButton;
    Gauge3: TGauge;
    Gauge4: TGauge;
    gbCD: TGroupBox;
    gbDVD: TGroupBox;
    procedure b1Click(Sender: TObject);
    procedure b2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure TForm1.OpenCDDrive(const ADriveChar: Char; Open: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.b1Click(Sender: TObject);
var i : integer;
begin
 begin
  Gauge1.MinValue := 0;
  Gauge1.MaxValue := 100;
  Gauge1.Progress := 0;
   for I := 0 to 100 do
    Gauge1.Progress := Gauge1. Progress + 1;
 end;
 mciSendString('Set cdaudio door open wait', Nil, 0, Handle);
 Gauge1.MaxValue := 0;
end;

procedure TForm1.b2Click(Sender: TObject);
var i : integer;
begin
 begin
   Gauge2.MinValue := 0;
   Gauge2.MaxValue := 100;
   Gauge2.Progress := 0;
    for I := 0 to 100 do
     Gauge2.Progress := Gauge2. Progress + 1;
 end;
 mciSendString('Set cdaudio door closed wait', Nil, 0, Handle);
 Gauge2.MaxValue := 0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 OpenCDDrive('E',True);
end;

procedure TForm1.OpenCDDrive(const ADriveChar: Char; Open: Boolean);
begin  
  if mciSendString(PChar('open '+ADriveChar+': type cdaudio alias cdlw'),
                   Nil, 0, 0) = 0 then
  begin  
    if Open then  
      mciSendString('set cdlw door open wait', Nil, 0, 0)  
    else
      mciSendString('set cdlw door closed wait', Nil, 0, 0);  
    mciSendString('close cdlw', Nil, 0, 0);  
  end;  
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 OpenCDDrive('E',False);
end;

end.


Chatfix - Do 07.06.07 18:37

Jetzt noch [delphi] und [/delphi] um den Quelltext und das lesen macht spass :)

Achja, im Private-Bereich kannst du TForm1. weglassen.


am2pm - Do 07.06.07 18:39

user profile iconChatfix hat folgendes geschrieben:
Jetzt noch  und um den Quelltext und das lesen macht spass :)


srry bin neu hier
so kannst du mir jetzt weiterhelfen


JayEff - Do 07.06.07 18:39

Dein Fehler liegt hier...:
user profile iconam2pm hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
    procedure TForm1.OpenCDDrive(const ADriveChar: Char; Open: Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

(markiertes entfernen)
Und hier:
user profile iconChristian S. hat folgendes geschrieben:
Beschäftige Dich mit den Grundlagen, anstatt Dir im Forum Deine Programme zusammenzukopieren! Lies ein paar Tutorials!

Grundlagen findest Du z.B hier: http://www.dsdt.info/grundlagen/
Oder auch hier: http://crashkurs.christian-stelzmann.de
;)


am2pm - Do 07.06.07 18:45


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
begin    
    if OpenCDDrive('E',True) then    
      mciSendString('set cdlw door open wait', Nil, 0, 0)    
    else  
      mciSendString('set cdlw door closed wait', Nil, 0, 0);    
    mciSendString('close cdlw', Nil, 0, 0);    
  end;    
end;



[Error] uLaufwerk.pas(77): Type of expression must be BOOLEAN


Blackheart666 - Do 07.06.07 18:56

user profile iconam2pm hat folgendes geschrieben:
lass das mal meine sorge sein was ich mache ich nur um hilfe gebeten

Das grenzt ja schon an Frechheit, dann solltest Du von Glück sprechen wenn Dich hier noch einer mit deinen Sorgen nicht allein lässt. :wink:


Christian S. - Do 07.06.07 19:03

user profile iconam2pm hat folgendes geschrieben:
lass das mal meine sorge sein was ich mache
Mein Posting klang vielleicht etwas unfreundlich (sorry!), war aber gut gemeint.

Du wirst nicht lernen, eigenständig zu programmieren, wenn Du Dich nicht mit den Grundlagen beschäftigst. Natürlich ist es einfacher, sich der verführerischen dunklen Seite zuzuwenden und sich die Progamme zusammenzukopieren, aber wahre Erleuchtung kann Dir nur die helle Seite bringen, die so aussieht, dass Du den schweren Weg der Grundlagen gehst ;-)


JayEff - Do 07.06.07 20:36

user profile iconam2pm hat folgendes geschrieben:
lass das mal meine sorge sein was ich mache ich nur um hilfe gebeten
Das heißt für mich "ich habe vor, malware zu programmieren." und bedeutet das schließen dieses Threads. Aber hey, deine Entscheidung, ob du Hilfe willst, oder nicht ;)


Saubäär - Do 07.06.07 23:04

user profile iconJayEff hat folgendes geschrieben:
Das heißt für mich "ich habe vor, malware zu programmieren." und bedeutet das schließen dieses Threads. Aber hey, deine Entscheidung, ob du Hilfe willst, oder nicht ;)


Ein Schadprogramm, dass mein Laufwerk öffnet? Naja, ich weiß net... :P

Gruß


JayEff - Do 07.06.07 23:46

Laut Richtlinien wird auch die Produktion von Scherzprogrammen auch nicht unterstützt. Ist ja auch ne art Malware ;) Aber das is ja nich das Thema. Solang der Fragesteller nicht klar macht, wozu er das ganze braucht, ist es Sache der Mods, ob sie das weiterlaufen lassen ;)


Dunkel - Fr 08.06.07 00:07

user profile iconSaubäär hat folgendes geschrieben:
Ein Schadprogramm, dass mein Laufwerk öffnet? Naja, ich weiß net... :P

Gruß

Worst case: man startet das Programm auf seinem 24/7-laufendem Rechner (nur mal gucken, ist bestimmt nichts schlimmes dran...) & fährt in den wohlverdienten, 3 wöchigen Urlaub. TTimer-gesteuert fährt dieses Proggi dann alle X Sekunden/Minuten das Laufwerk auf und zu.

Meinst Du nicht, dass die anfällige Plastik-Mechanik des Laufwerks dann irgendwann zu Pulver zerfällt?
Also könnte es ein Schadprogramm werden!

Nun, Vormittags2Nachmittags, wofür braucht man (Du) sowas?


Christian S. - Fr 08.06.07 00:20

Leute, ist gut jetzt :roll: Wo kam dieses "Schadprogramm"-Gerücht her? Sofern keiner nachweisen kann, dass im Iran eine Atombombe explodiert, wenn in Grönland ein DVD-Laufwerk aufgeht, sollte diese Diskussion hier zu Ende sein ;-)


Nilan - Fr 08.06.07 01:34

Vielleicht etwas unpolitischer, mein Freund? :)


Dunkel - Fr 08.06.07 02:04

Ja, ja, die bösen Grönländer die die Atombomben der Iraner mit dem Laser eines geöffneten DVD-Laufwerks hoch gehen lassen... :lol:

Back to topic:

user profile iconam2pm hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
begin    
    if OpenCDDrive('E',True) then    
      mciSendString('set cdlw door open wait', Nil, 0, 0)    
    else  
      mciSendString('set cdlw door closed wait', Nil, 0, 0);    
    mciSendString('close cdlw', Nil, 0, 0);    
  end;    
end;



[Error] uLaufwerk.pas(77): Type of expression must be BOOLEAN


Wo kommt denn der Code jetzt her? Zusammenhanglos, ohne tieferen Sinn, ein Mix aus Deinem zuletzt vollständig geposteten Quellcode.
Ich glaube es wird mal wieder Zeit für den kompletten Quelltext. :roll: