Autor Beitrag
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Mi 24.07.02 20:34 
Hallo

Ich habe ein "eigenes" Dateiformat entwickelt für ein Spiel. Der User soll nun wie z.B. bei einer doc-Datei auf den Dateinamen doppelklicken und dann soll die Datei in meinem Programm geladen werden. Zur Zeit startet mein Programm aber nur. Die Datei muss ich immer noch selber laden. Was muss ich machen damit meine Exe die Datei dann auch läd? Wie kann ich dann eine Fehlermeldung verhindern, wenn ich das Programm selbst starte, also ohne auf eine verknüpfte Datei zu klicken? :?

cu Patmann
Alibi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458

Win2K SP3
Delphi 6 Ent
BeitragVerfasst: Mi 24.07.02 22:44 
Dazu sind lediglich ein Paar Regeinträge nötig:
1.
HKEY_CLASSES_ROOT\.xxx
mit den Werten:
Standartwert = Programmname
Content Type = text/plain (z.B.)
Inhaltstyp = application/x-stuffit

2.
HKEY_CLASSES_ROOT\Programmname\DefaultIcon
Standartwert = C:\PfadZumProgramm\Programm.exe,0 // Oder 1, je nachdem, das wievielte Icon benutzt werden soll.

3.
HKEY_CLASSES_ROOT\Programmname\Shell\Open\Command
Standartwert = " C:\PfadZumProgramm\Programm.exe" "%1"

Nun wird bei einem Doppelklick auf eine entsprechende Datei mit der Endung dein Programm gestartet und der Dateiname und Pfad stehen in ParamStr(1).

Hier ein Beispiel, wie ich damals die Regeinträge in einem alten Programm von mir gelöst hatte:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
[REGISTRY]
Root: HKCR; Subkey: ".vtd"; ValueType: string; ValueData: "VTrainer";Flags:uninsdeletekey ;
Root: HKCR; Subkey: ".vtd"; ValueType: string; ValueName:"Content Type" ;ValueData: "text/plain";Flags:uninsdeletekey ;
Root: HKCR; Subkey: "VTrainer";Flags:uninsdeletekey ;
Root: HKCR; Subkey: "VTrainer\Shell";Flags:uninsdeletekey ;
Root: HKCR; Subkey: "VTrainer\Shell\Open";Flags:uninsdeletekey ;
Root: HKCR; Subkey: "VTrainer\DefaultIcon";ValueType: string; ValueData: "{app}\FileIco.ico,0"; Flags:uninsdeletekey ;
Root: HKCR; Subkey: "VTrainer\Shell\Open\command";ValueType: string; ValueData: "{app}\Vokabeltrainer.exe ""%1""";Flags:uninsdeletekey ;

Das ist aus einem Innosetup Install Script.
patmann2001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Fr 26.07.02 15:20 
Wie kann ich den ParamStr(1) aufrufen?
cu Patmann
cbs
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207
Erhaltene Danke: 1



BeitragVerfasst: Fr 26.07.02 15:26 
tag auch

ganz einfach:
ausblenden Quelltext
1:
function ParamStr(Index: Integer): string;					

also Dateiname:= ParamStr(1);
wobei Dateiname ein string ist

der index 0 ist der Applicationname + path und der index 1, 2, 3 ... usw. sind die übergebenen Parameter