Clever-Excel-Forum

Normale Version: Early Binding
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo VBA Sportler,
ich möchte eine PDF-Datei auf einer bestimmten Seite öffnen.  
Das mache ich so:


Code:
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub PDF_Datei_an_best_Seite_öffnen()
Dim strParameter, strPfad
strParameter = "/A " & Chr(34) & "page=" & 120 & Chr(34) & " " & "C:\T\A.pdf"
strPfad = "C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe"
Dim shX As Object
Set shX = CreateObject("Shell.Application")
Call ShellExecute(0&, "open", strPfad, strParameter, "", 1)
End Sub

Die PDF Datei wird dabei auf der Seite 120 geöffnet.


Mein Problem: Wie schaffe ich das Ganze mit Early Binding?


Code:
Sub Alternative_mit_EarlyBinding()
Dim strParameter, strPfad
strParameter = "/A " & Chr(34) & "page=" & 120 & Chr(34) & " " & "C:\T\A.pdf"
strPfad = "C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe"
Dim shX As Shell32.Shell
Set shX = New Shell32.Shell

'Problemstelle: Wie müssen hier die Parameter gesetzt werden?
shX.ShellExecute ????????????????????
End Sub


Ich hoffe ihr könnt mir helfen und den entsprechenden Code ergänzen.
Hallo!

Wenn es für Foxit keine passende Steuerdatei gibt kannst Du weder mit Early-Binding noch Late-Binding arbeiten. Derzeit arbeitest Du ja mit API. Ich wüsste nicht dass es für Foxit eine Steuerdatei gibt.

Gruß, René
Moin!
Es gibt schon ein paar Libraries:
[attachment=11218]
Man müsste mal (auf deren Website) schauen, was es da für Möglichkeiten gibt.
(Ich habe nur den Reader, der Phantom hat ja noch diverse zusätzliche Funktionen)

Gruß Ralf
Laut Internet-Recherche gibt es immer nur API-Referenzen, auch bei Foxit direkt. Das unter "Verweise" auch Foxit (und andere Programme) angezeigt werden sagt meiner Erfahrung nach nicht dass man damit auch per Verweise zugreifen kann. Für Foxit gibt es ein Steuerelement, ähnlich dem Browsersteuerelement, welches aber nur per API oder durch ein Steuerelement angesteuert werden kann. Es gibt zahlreiche Steuerelemente, z.B. das "signotec SignoSign Steuerelement", welche nur per API oder durch das Steuerelement angesteuert werden können, per "Set obj = CreateObject" oder "Set obj = New" jedoch nicht. Also eine direkte Ansteuerung ohne "Objektverweise", man muss also nicht erst eine Objektinstanz erzeugen. Die Ansteuerung erfolgt direkt durch das Steuerelement, welches sich z.B. in einer Userform befindet.
Hi mumpel,

du scheinst ja doch ein bißchen Ahnung von den API's zu haben. Deshalb ließ bitte noch mal meine Frage durch.

Der erste Code oben funktioniert. Er funktioniert mit dem Foxit Programm. Die PDF Datei wird auf der richtigen Seite

geöffnet. Ich suche jetzt nur noch die Alternativlösung mittels Early Binding.

Problemstelle habe ich oben angekreutzt.

Da nun die meisten aber nicht Foxit, sondern Acrobat benutzen, werde ich kurzfristig hier noch ergänzend vortragen.
Moin René!
Danke für die Aufklärung.
War ein Schnellschuss meinerseits.  Blush

Gruß Ralf
Von API habe ich keine Ahnung. Die SDKs von Foxit sind alle nur auf Englisch. Da brauche ich ein paar Tage um mich einzuarbeiten. Ich könnte auch nur ins Blaue hinein programmieren, da ich Foxit nicht habe.

"Early Binding" ist, wie ich bereits erwähnte, nicht möglich. Das Erstellen von PDF per Objektinstanz existiert in Foxit nicht.
(08.05.2017, 18:37)RPP63 schrieb: [ -> ](...) War ein Schnellschuss meinerseits (...)
Träumen ist erlaubt. ;)
Übrigens:
Das Öffnen einer bestimmten Seite einer PDF-Seite hängt vom Leseprogramm ab, da hat jedes Programm seine eigenen Parameter. Da hier aber anscheinend die "Shell.Application" im Einsatz ist müsste einer ran der die Shell-Parameter kennt.
Seiten: 1 2