Autor |
Beitrag |
Moritz
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 22.04.03 18:15
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
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: 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
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Moritz 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: 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!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: 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
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: 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..
_________________ Hasta La Victoria Siempre
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: 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!
_________________ Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: 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.
_________________ Hasta La Victoria Siempre
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: 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..
_________________ Hasta La Victoria Siempre
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 24.04.03 21:25
Kein durchdachtes Argument ...  ... 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
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: 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..
_________________ Hasta La Victoria Siempre
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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. 
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: 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..
_________________ Hasta La Victoria Siempre
|
|