Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Programm zu Dokument finden... (https://www.delphipraxis.net/19098-programm-zu-dokument-finden.html)

Hazardos 29. Mär 2004 13:08


Programm zu Dokument finden...
 
Hallo,
ich möchte ein Dokument mit dem dazu registrierten Programm öffnen.
Das geht ja für gewöhnlich mit Shellexecute. Nun möchte ich jedoch noch einen weiteren Parameter für das Programm angeben.
Beispiel: Powerpoint
Ich habe eine Präsentation, die direkt gestartet werden soll. Also sieht die Verknüpfung ungefähr so aus:
"C:\...\POWERPNT.EXE" /s "C:\...\Präsentation.ppt"
so würde es funktioniert, jedoch kenne ich den Programmpfad nicht, da das Programm auch auf anderen Rechnern aufgerufen werden soll. Villeicht kann man mittels der Windows-registry den Pfad des Programms rausfinden??

Bin dankbar für jede Hilfe!!
Jörn

Wheelie 29. Mär 2004 13:45

Re: Programm zu Dokument finden...
 
An dieser Stelle wäre es vermutlich klüger das Programm (MS Powerpoint) mit dem Dateipfad als Parameter aufzurufen.

Geht auch mit ShellExecute:
Delphi-Quellcode:
ShellExecute(0, 'open', PChar('powerpnt.exe'), PChar('C:\presentation.ppt'), PChar('C:\Office\'), SW_ShowNormal);

Hazardos 29. Mär 2004 13:58

Re: Programm zu Dokument finden...
 
Das ist ja gerade mein Problem, ich weis nicht, wie der Programmpfad lautet, da der wohl immer unterschiedlich ist.
Wie bekomme ich den kompletten Programmpfad des Programmes raus, das mit den Dateien *.ppt verknüpft ist?

Luckie 29. Mär 2004 14:12

Re: Programm zu Dokument finden...
 
Solltest du aus der Registry auslesen können HKEY_CLASSES_ROOT wo der Dateityp mit dem Porgramm verknüft ist.

Hazardos 29. Mär 2004 15:33

Re: Programm zu Dokument finden...
 
Weist du oder irgendjemand, wie man das machen kann??

Luckie 29. Mär 2004 16:19

Re: Programm zu Dokument finden...
 
Mit der Klasse TRegistry, würde ich jetzt mal so ganz unbedarft sagen, näheres dazu in der Hilfe.

fkerber 29. Mär 2004 16:29

Re: Programm zu Dokument finden...
 
Hi!

Kann man es nicht einfach so machen?

Delphi-Quellcode:
ShellExecute(0, 'open','C:\Dokumente und Einstellungen\Papa\Vorlagen\powerpnt.ppt',nil,nil, SW_ShowNormal);
Ciao fkerber

Hazardos 29. Mär 2004 16:41

Re: Programm zu Dokument finden...
 
Das hatte ich ja auch erst so, jedoch möchte ich dem Programm noch einen Parameter hinzufügen. Das geht nur, wenn man die .exe angibt, glaube ich.

Christian Seehase 29. Mär 2004 21:37

Re: Programm zu Dokument finden...
 
Moin Hazardos,

zum einen könntest Du einfach, bezogen auf fkerbers Beispiel, mal den Parameter einfach vor den Pfad zu der Datei setzen, mit Blank abgesetzt, zum anderen kannst Du den Pfad, wenn's sein muss auch auslesen, indem Du aus

HKEY_CLASSES_ROOT\<Extension der jeweiligen Datei incl. Punkt>

den Standardwert ausliest z.B. in die Variable sRegType

Anschliessend aus

HKEY_CLASSES_ROOT\<Wert aus sRegType>\shell\open\command

wieder den Standardwert auslesen, z.B. in die Variable sCommand.

Fängt der Inhalt von sCommand mit einem " an, so muss Du nur das dazugehörige " finden.
Alles dazwischen ist dann der Pfad zum Programm.

Wenn der Inhalt von sCommand nicht mit " anfängt, so wird der Pfad durch das erste Blank in sCommand begrenzt, oder sCommand enthält schon den ganzen Pfad.

Hazardos 30. Mär 2004 10:46

Re: Programm zu Dokument finden...
 
:idea: So funktionierts...
thx @ all!!!
Jörn


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz