Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Pfad aus geöffneter Adobe PDF Datei auslesen

VBA Pfad aus geöffneter Adobe PDF Datei auslesen
12.07.2017 17:07:55
Tom
Hallo Zusammen,
wie kann ich mittels VBA den Pfad der aktuell geöffneten/er PDF Daten in Adobe Reader auslesen?
Vielen Dank vorab.
Grüße
Tom

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Pfad aus geöffneter Adobe PDF Datei auslesen
12.07.2017 19:49:34
Anton
Hallo Tom,
so?:
Sub b()
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'AcroRd32.exe'")
For Each objProcess In colProcessList
Debug.Print objProcess.commandline
Next
End Sub
mfg Anton
AW: VBA Pfad aus geöffneter Adobe PDF Datei auslesen
12.07.2017 20:35:56
Tom
Hallo Anton,
fast, bei deiner Datei erhalte ich den Pfad von Acrobat, ich benötige den Pfad der geöffneten Datei im Acrobat Reader.
Grüße
Tom
AW: VBA Pfad aus geöffneter Adobe PDF Datei auslesen
12.07.2017 20:36:45
Tom
Sry. nicht bei deiner Datei sondern bei denen Code :)
AW: VBA Pfad aus geöffneter Adobe PDF Datei auslesen
13.07.2017 16:01:22
Tom
Keiner eine Idee?
Anzeige
AW: Fensterln?
14.07.2017 15:44:18
mmat
Hi,
der Ansatz von Anton verfolgt die Idee, alle Prozesse dahingehend zu untersuchen, wie sie aufgerufen wurden. Wenn der Name der PDF-Datei beim Start mitgeliefert wird, dann ist er auch so zu ermitteln. Wenn der Anwender aber seine Datei über "Datei/öffnen" aufmacht, dann ist hier nix.
Eine andere Idee ist, die Titelzeile aller geöffneten Fenster auszulesen und die gewünschte Information hier zu erheben. Da steht zumindest der Dateiname drin. Die API-Funktion EnumWindows arbeitet leider mit einer Call-Back Funktion und ist daher für VBA nicht brauchbar.
Frage an die Gemeinde:
Kennt jemand eine Methode, eine Liste aller geöffneten Fenster (im Windows) aus VBA heraus zu erstellen?

vg, Berti
Anzeige
AW: Fensterln?
14.07.2017 17:24:29
mmat
Danke, wer hätte das gedacht ?
Das muß ich mir mal in Ruhe angucken, dann bereite ich das auch für Tom auf
Diese Woche nicht mehr ...
vg, MM
AW: Fensterln?
14.07.2017 18:27:40
Tom
Vielen Dank euch allen für die Informationen und danke dir MM für das aufbereiten.
AW: Fensterln?
17.07.2017 10:41:31
mmat
Hallo Tom,
anbei der Code. Der findet das erste Fenster, bei dem ".pdf" in der Titelzeile auftaucht. Ich hab das mal auf das wesentliche eingedampft: so geht das. Je nach Umfeld und Einsatzzweck sind hier noch eine Menge Details auszuarbeiten, aber das überlass ich Dir :-)
vg, MM
Option Explicit
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As  _
Long) As Boolean
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal  _
hwnd As Long) As Long
Dim fn As String
Public Sub SucheFenster()
Dim n As Long
fn = "keine"
EnumWindows AddressOf FindWindow, 0&
MsgBox "Geöffnete Datei: " + fn
End Sub
Private Function FindWindow(ByVal lHwnd As Long, ByVal lParam As Long) As Boolean
Dim sTemp As String, retVal As Long, p As Long
retVal = GetWindowTextLength(lHwnd)
sTemp = Space(retVal)
GetWindowText lHwnd, sTemp, retVal + 1
If retVal  0 Then
p = InStr(UCase(sTemp), ".PDF")
If (p > 0) Then fn = Left(sTemp, p + 3): FindWindow = False: Exit Function
End If
FindWindow = True
End Function

Anzeige
AW: Fensterln?
17.07.2017 14:47:11
Tom
Hallo mm,
vielen Dank.
Ich erhalte folgende Fehlermeldung?
Userbild
Grüße
AW: Fensterln?
17.07.2017 17:22:12
Mullit
Hallo,
der Code gehört in ein Standardmodul.
Gruß, Mullit
AW: Fensterln?
17.07.2017 17:33:18
Tom
Vielen Dank!
Funktioniert!
Grüße

355 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige