Datei öffnen mit

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
DelUser01

Datei öffnen mit

Beitrag von DelUser01 »

Hallo

wenn ich mit RunShell eine PDF-Datei anspreche wird diese mit dem Standard-Programm (z.B. Acrobat Reader) geöffnet.
Wenn ich diese Datei jetzt aber verschiedentlich z.B. mit Adobe Acrobat öffnen müsste- ohne zuvor das Standard-Programm umzustellen - gibt es da eine Funktion?

Eine Möglichkeit wäre natürlich, den User vorab zwischen Reader oder Acrobat wählen zu lassen.
Aber ich weiß doch nicht was auf jedem PC installiert ist und was der User als Standard verwendet.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Datei öffnen mit

Beitrag von Herbert »

Am besten ist, du programmierst das selber aus. Kleine Radiobox und rufst entsprechend das Programm selber auf.
Grüsse Herbert
Immer in Bewegung...
DelUser01

Re: Datei öffnen mit

Beitrag von DelUser01 »

Hubert, vielleicht hat doch schon einer so etwas gebaut...
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Datei öffnen mit

Beitrag von AUGE_OHR »

DelUser01 hat geschrieben: So, 11. Mär 2018 11:35 wenn ich mit RunShell eine PDF-Datei anspreche wird diese mit dem Standard-Programm (z.B. Acrobat Reader) geöffnet.
Wenn ich diese Datei jetzt aber verschiedentlich z.B. mit Adobe Acrobat öffnen müsste- ohne zuvor das Standard-Programm umzustellen - gibt es da eine Funktion?
man müsste schon das Standart-Programm ändern
DelUser01 hat geschrieben:Eine Möglichkeit wäre natürlich, den User vorab zwischen Reader oder Acrobat wählen zu lassen.
Aber ich weiß doch nicht was auf jedem PC installiert ist und was der User als Standard verwendet.
statt

Code: Alles auswählen

@SHELL32:ShellExecuteA() und "open"
nimmst du

Code: Alles auswählen

@SHELL32:OpenAs_RunDLL() und 0 (zero)
gruss by OHR
Jimmy
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Datei öffnen mit

Beitrag von Koverhage »

Ich mach das so, der Anwender legt fest ob er einen anderen als den Standard verwenden will (hier als pdfextern deklariert)

Code: Alles auswählen

if fi->pdfextern
   ZeigePDFDatei(PfadName(cPDFName),Dateiname(cPDFName))
endif

Function ZeigePDFDatei()
cAcrobat := rtrim(fi->pdfviewer)
cPDF := chr(34)+cPDFPath+cPDFDatei+chr(34)  // die chr(34) == " ermöglichen Blanks im Namen !


if empty(cAcrobat) .or. !Fexists(cAcrobat)
   cAcrobat := GetStandardProgramm(cPDFPath, cPDFDatei)
endif

RunShell( cPDF, cAcrobat, NO )
Gruß
Klaus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Datei öffnen mit

Beitrag von brandelh »

DelUser01 hat geschrieben: So, 11. Mär 2018 13:27 Hubert, vielleicht hat doch schon einer so etwas gebaut...
er heißt Herbert, ich bin Hubert ;-)

Ich würde im Programm einen Menüpunkt für die Vorauswahl des PDF Readers vorsehen, wenn die leer ist, ermittle den Standard Reader, ansonsten Pfad und EXE des gewünschten eintragen lassen und abspeichern.
man müsste schon das Standart-Programm ändern
das sollte man niemandem vorschreiben ;-)

Klaus war schneller, seine Lösung verwende ich auch, entweder die EXE mit Pfad vorgeben oder die Standard-EXE ermitteln, aber beide öffnen mit runshell die PDF auf gleiche Art.
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Datei öffnen mit

Beitrag von Koverhage »

Hubert,
ich glaube ein Teil davon ist von Dir ;-)
Bei mir kann jeder Anwender seinen bevorzugten PDF Reader benutzen. In der
User Datenbank ist angegeben PDFEXTERN Ja oder Nein. Bei Ja sollte er den
PDFVIEWER eintragen.
Gruß
Klaus
DelUser01

Re: Datei öffnen mit

Beitrag von DelUser01 »

Hallo!
Danke für die Vorschläge, meine Frage zielte schon darauf ab, mit einer MS-API-Funktion z.B. den Explorer so zu öffnen:
ExplorerOpenWith.jpg
ExplorerOpenWith.jpg (64.92 KiB) 7616 mal betrachtet
Jimmys Vorschlag muss ich noch ausprobieren.
Sören
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 205
Registriert: Mo, 07. Aug 2006 10:18
Wohnort: Leipzig
Danksagung erhalten: 11 Mal

Re: Datei öffnen mit

Beitrag von Sören »

Hallo Roland,

Jimmy hat es eigentlich schon gepostet, aber hier nochmal in Nicht-OTX-Syntax:

Code: Alles auswählen

// Vorgehen, um den "Öffnen mit ..." - Dialog anzuzeigen:

cFileName := "C:\Dateien\MeinDokument.pdf"

RunShell( "Shell32.dll,OpenAs_RunDLL " + cFileName, "Rundll32.exe" )
Beste Grüße,
Sören
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Datei öffnen mit

Beitrag von Wolfgang Ciriack »

Prima, danke, klappt gut, kann ich auch gebrauchen.
Viele Grüße
Wolfgang
DelUser01

Re: Datei öffnen mit

Beitrag von DelUser01 »

Hallo Jimmy und Sören

das ist was ich meinte - Danke!
Antworten