Autor Beitrag
dm
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Mi 07.01.04 11:01 
Hallo,

ich habe ein simples Datenbank Programm was auf CD gebrannt werden soll. Von dieser CD aus gibt es dann 2 Möglichkeiten, das Programm aufzurufen.

1. Installation auf festplatte + Start von Festplatte aus

2. Start von der CD aus, keine installation nötig.

Zur 2. Variante :

Wie kann ich per DelphiCode abfragen, welches Laufwerk (D,E,F,...) das CD-Rom Laufwerk ist UND wenn ein Computer mehrere CD/DVD Laufwerke hat, in WELCHEM nun meine CD liegt ?


Bitte helfen !! :)

Grüße

Dennis
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mi 07.01.04 11:10 
Hallo,

vielleicht kann dir der Befehl "GetCurrentDir" weiterhelfen!?

Greetz
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.01.04 12:08 
Nein, der Befehl GetCurrentDir hilft nicht weiter, da er das aktuelle Arbeitsverzeichnis zurückliefert. Und das kann (wie Luckie ab und zu erwähnt) bspw. durch einen Öffnen- oder Speicherndialog bzw. auf anderem Weg verändert worden sein und muss mit dem Ordner, in dem sich das Programm befindet, daher nicht zwangsläufig übereinstimmen.

Ich glaube, die Befehle ExtractFileDrive (zum Ermitteln des Laufwerksbuchstaben) und GetDriveType (WinAPI-Funktion zum Ermitteln des Laufwerktyps) könnten helfen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 07.01.04 14:32 
Titel: Exename
Hallo!

Wenn es nur darum geht, festzustellen von wo das Programm gestartet wurde, kann man das über Application.Exename herausfinden.
Darin befindet sich der vollständige Pfad zur Anwendung.

Mit
ausblenden Delphi-Quelltext
1:
Copy(Application.Exename,1,1)					

erhälst Du also den Laufwerksbuchstaben als String.

Und wie schon von MathiasSimmack gesagt:
GetDriveType kannst Du dann mit diesem Ergebnis aufrufen, um festzustellen, ob das Programm von CD-ROM gestartet wurde.

MfG,
S.J.
dm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Mi 07.01.04 14:37 
Zitat:
Wenn es nur darum geht, festzustellen von wo das Programm gestartet wurde, kann man das über Application.Exename herausfinden.


Leider muss ich VOR Programmstart wissen, welchen Laufwerksbuchstaben das Laufwerk hat, in dem meine CD liegt.

Desweiteren noch die Frage, wie ich bei mehreren CD / DVD Laufwerken dann VOR Programmstart weiss, in welchem der CD/DVD Laufwerke meineCD sich befindet.

Aber Danke schonmal für die Tips !!!

Grüße

Dennis
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19341
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 07.01.04 14:44 
Titel: ???
Hallo!

Wie willst Du denn, wenn Dein Programm noch gar nicht läuft, Delphi-Code einsetzen???

Falls Du nur meinst vor dem Erscheinen des Hauptfensters:
Schreib den Aufruf in den Projektquelltext.

MfG,
S.J.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.01.04 15:04 
Im Projektquelltext (*.dpr) muss es nicht unbedingt sein. Das "OnCreate"-Ereignis der Form dürfte auch noch reichen.

Generelle Frage: Was willst du mit der Unterscheidung eigentlich erreichen? Also, was macht das Programm bei einem Start von CD anders als bei einem Start von der Platte?
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mi 07.01.04 15:22 
ich mach das immer so: ProgPfad:=ExtractFilePath(ParamStr(0));Damit hab ich immer das aktuelle Verzeichnis wo das Programm ist...

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.01.04 15:50 
Was aber nicht die Frage war.
dm Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Mi 07.01.04 16:11 
Zitat:
Generelle Frage: Was willst du mit der Unterscheidung eigentlich erreichen? Also, was macht das Programm bei einem Start von CD anders als bei einem Start von der Platte?


Das Programm greift auf Dateien zurück. Diese Dateien liegen ja entweder auf der Festplatte (bei der 1. Variante = Installation) oder auf der CDRom (2.Variante - Stand ALone CDRom ohne irgendwelche Installation auf FP).

Um den Pfad für die Dateien zu vervollständigen, muss ich ja wissen, in welchem CDromlaufwerk (Name) meine CD eingelegt ist.

Den Laufwerksbuchstaben von allen Cd-Romlaufwerken kann ich nun auch auslesen.

Nun muss ich noch herausfinden, in WELCHEM der Cdromlaufwerke (viele Pcs haben ja mittlerweile mehere CD laufwerke ala Brenner, DVD laufwerk, etc.) meine CD drin ist. Ich dachte da z.B: an Laufwerksnamen auslesen und meine CDs dann immer dementsprechend zu benennen.

Ne Ahnung wie ich den LaufwerksNAMEN auslese ?

Gruß Dennis


Danke schonmal für alle Tips bislang!
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.01.04 18:43 
dm hat folgendes geschrieben:
Das Programm greift auf Dateien zurück. Diese Dateien liegen ja entweder auf der Festplatte (bei der 1. Variante = Installation) oder auf der CDRom (2.Variante - Stand ALone CDRom ohne irgendwelche Installation auf FP).

Um den Pfad für die Dateien zu vervollständigen, muss ich ja wissen, in welchem CDromlaufwerk (Name) meine CD eingelegt ist.

Nö, das ist in dem Fall weniger wichtig, weil ich dich nun doch auf die Idee von Chatfix verweisen kann. ExtractFilePath liefert dir, mit dem richtigen Parameter, den Ordner deiner Exe zurück. So gesehen ist es vollkommen gleichgültig, in welchem Laufwerk sich die CD-ROM befindet. Du erhältst den Buchstaben des Laufwerks und ggf. den Pfad (wenn dein Programm in einem Unterordner ist).