<span style=
"color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif;"
>Hallo,
ich habe den Code nochmal sauber dargestellt. Vielleicht kann einer weiterhelfen?
ich habe mehrere PDF Dateien im Adobe Acrobat Reader geöffnet. Ich möchte die aktuell geöffnete PDF abspeichern und den Dateinamen ändern
in dem ich das heutige Datum mit _YYYYMMDD im Dateinamen am Ende ergänze eben nicht über Speichern unter, sondern über einen Button
(z.B. Schnellzugriffsleiste)in einer Excel Arbeitsmappe, die immer auf ist. Die geöffnete PDF Datei finden kann ich mit folgendem Code.
Dabei werden aber nur die Titelleisten der geöffneten Windows ausgelesen. Aber mir fehlt der Pfad zu dieser Datei, damit ich speichern könnte. Hat einer eine Idee wie ich noch den Pfad der aktuell geöffneten PDF Datei bestimmen kann?
</span>
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&
Debug.Print fn
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