Autor Beitrag
Moritz
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 22.04.03 20:35 
Hallo!

erst mal vielen Dank für die Antwort!

Ich habe das jetzt so gemacht:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Di 22.04.03 22:20 
Hallo Moritz!

So geht's:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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



BeitragVerfasst: 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:

ausblenden 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:
ausblenden 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
ausblenden Quelltext
1:
ExtractFilePath(paramstr(0));					

Gruß.
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: 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