Entwickler-Ecke
Dateizugriff - CD-Rom-Inhalt auf ButtonClick anzeigen
Moritz - Di 22.04.03 18:15
Titel: CD-Rom-Inhalt auf ButtonClick anzeigen
Hallo!
ich möchte gerne für ein Autostartprogramm auf einer CD die Möglichkeit
einbauen, dass der Benutzer nach klick auf einen Button den Inhalt der CD angezeigt bekommt.
Wie bekomme ich das hin?
Vielen Dank!
LCS - Di 22.04.03 20:11
Hi
am einfachsten mit ShellExecute den Befehl open, und als Parameter den Laufwerksbuchstaben und das Rootverzeichnis des CD-ROMs angeben.
Gruss Lothar
Moritz - Di 22.04.03 20:35
Hallo!
erst mal vielen Dank für die Antwort!
Ich habe das jetzt so gemacht:
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button3Click(Sender: TObject); begin ShellExecute(Handle, 'open', 'D:\', '', '', 0); end; |
Wobei Button3 der Button ist, der das CD-Verzeichnis öffnen soll.
Allerdings passiert nichts.
wulfskin - Di 22.04.03 22:20
Hallo Moritz!
So geht's:
Quelltext
1: 2:
| ShellExecute(Handle, 'explore', PChar(ExtractFileDrive(Application.ExeName)), '', '', SW_SHOW); |
Mehr zu
ShellExecute findest du in der
Windows Api Hilfe!
Gruß wulfskin!
LCS - Mi 23.04.03 09:32
Hi
Das Problem lag am letzten Parameter. Da sollte SW_SHOWNORMAL stehen. Ob die als Befehl open oder explore verwendest ist eigentlich egal.
Gruss Lothar
Terra23 - Mi 23.04.03 18:31
@Moritz:
Mal so als Einwand: Das Programm scheint für deinen Rechner zu funktionieren, weil dein CD-Laufwerk "D:\" ist.
Was ist denn aber, wenn jemand mehrere Partitionen hat und das CD-Laufwerk (so wie bei mir) "D:\" ist?
Da muß man das doch ermitteln, oder?
Ich hatte mal in der Schule mit GetDir zu tun und da ging das z.B. so:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| Var Pfad: String
procedure TForm1.Button1Click(Sender: TObject); begin GetDir(0, Pfad); Label1.Caption:=Pfad; end; |
Wenn du
0 eingibst, spuckt Delphi dir den aktuellen Pfad aus, in dem sich das Tool befindet, z.B.
C:\Eigene Dateien\Moritz\Delphi\CD-Programm\
Grüße, Alex..
wulfskin - Mi 23.04.03 19:21
Terra23 hat folgendes geschrieben: |
Mal so als Einwand: Das Programm scheint für deinen Rechner zu funktionieren, weil dein CD-Laufwerk "D:\" ist.
Was ist denn aber, wenn jemand mehrere Partitionen hat und das CD-Laufwerk (so wie bei mir) "D:\" ist? |
Schau mal meinen Beitrag an, da habe ich das etwas anders gelöst!
Terra23 - Mi 23.04.03 22:27
Ja, habe ich gemacht. :-) Du hast es gelöst, denke ich. Übrigens soll es bei mir nicht D: heißen, sondern E:\.
Grüße.
Delete - Do 24.04.03 08:19
Terra23 hat folgendes geschrieben: |
Ich hatte mal in der Schule mit GetDir zu tun und da ging das z.B. so:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| Var Pfad: String
procedure TForm1.Button1Click(Sender: TObject); begin GetDir(0, Pfad); Label1.Caption:=Pfad; end; |
Wenn du 0 eingibst, spuckt Delphi dir den aktuellen Pfad aus, in dem sich das Tool befindet, z.B. C:\Eigene Dateien\Moritz\Delphi\CD-Programm\ |
Na, da muss ich dich aber leider enttäuschen, Terra. Das klappt nämlich nur, solange das aktuelle Verzeichnis nicht geändert worden ist. Probier doch vorher mal folgendes:
Quelltext
1: 2: 3: 4:
| procedure TForm1.Button2Click(Sender: TObject); begin SetCurrentDir('d:\DuWeisstEsNichtBesser'); end; |
und dann schau mal was dir dein erster Button anzeigt.
Das, was du meinst (sprich: den Pfad, in dem sich das Programm gerade befindet) bekommst du mit
Quelltext
1:
| ExtractFilePath(paramstr(0)); |
Gruß.
Terra23 - Do 24.04.03 19:21
@Mathias:
Naja, bei uns in der Schule hat niemand den Pfad geändert, daher ging das.. :-)
Grüße, Alex..
Delete - Do 24.04.03 21:25
Kein durchdachtes Argument ... :wink: ... du solltest ja davon ausgehen, dass jemand sein Programm veröffentlichen will. Was soll der tun?
Bedienungsanleitung hat folgendes geschrieben: |
Ach übrigens, ich habe GetDir zur Ermittlung des Exe-Pfades benutzt. Sie dürfen also auf keinen Fall den Pfad ändern, solange Sie mein Programm benutzen. |
:?
Nee, dann doch lieber den richtigen Weg über
paramstr(0).
Grüße.
Terra23 - Fr 25.04.03 00:25
Normalerweise mache ich das so. Von wegen: Was ist, wenn jemand die INI löscht, was ist, wenn der Key nicht existiert...
In der Schule ging das aber so, da pfuschte niemand rum. Die haben immer Sub7even laufen gehabt..
Grüße..
Delete - Fr 25.04.03 01:27
Dann habt ihr wohl noch nie mit TOpenDialog und TSaveDialog gearbeitet, denn spätestens, wenn man da ein anderes Verzeichnis wählt, dann iust auch das aktuelle Verzeichnis für die Anwendung geändert.
Und die Begründung: "Weil wir es immer so gemacht haben.", ist nicht gerade die beste. :wink:
Terra23 - Fr 25.04.03 22:20
@Luckie: Weiß ich doch, war ja auch nicht dagestanden, daß es eine gute Begründung ist. Ich sage ja nur, in der Schule hatten die alle nie im Sinn gehabt, den Pfad zu ändern, aber ich programmiere viel so, von wegen was ist, wenn einer das und das. Ich kann ja auch eine INI-Datei benutzen und irgend jemand kommt auf die Idee, die zu löschen, dann muß ich darauf im Tool vorbereitet sein. :-)
Grüße, Alex..
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!