Hallo liebe Gemeinde,
ich möchte gerne ein pdf - Dokument mit mehreren Reitern auf meinem Bildschrim so präsentieren, dass der AcroReader nicht durch Klick aufs "Kreuzchen" geschlossen werden kann.
Das Schließen soll später nur über einen von mir gewählten Tastendruck erfolgen.
Dazu hier folgende Gdanken
Spoiler anzeigen
AutoIt
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\..\Icons\diab00.ico
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Run_Tidy=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <File.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('WinTitleMatchMode', 2)
Opt('WinWaitDelay', 500)
Local $_oFileToLoad = "" ; nimmt später die zu startende pdf-Docs auf
Local $_titelMsg = 'Öffnungszeiten & Kontaktinformationen'
Local $_path = 'C:\x_Alter_PC\Eigene Dateien\Winword\Privat\Med\Öffnungszeiten' ; pfad zu den zu startenden pdf-Docs
Local $_acroPath = RegRead('HKLM\Software\Classes\Software\Adobe\Acrobat\exe', '') & ' ' ; Pfad zum installierten AcroReader
;prüfen, ob AcroReader installiert ist
If $_acroPath = '' Then
MsgBox(64, $_titelMsg, 'Das benötigte Programm' & @LF & _
'"' & 'Adobe Acrobat Reader' & '"' & @LF & _
'ist offenbar nicht installiert' & @LF & _
'Das Programm wird beendet.')
Exit
EndIf
; alle anzuzeigenden pdf-Doc's in ein Array und eventuelle Fehlerbehandlung
Dim $_fArray = _FileListToArray($_path, '*.pdf', 1)
Local $_err = @error
If $_err > 0 Then
Select
Case $_err = 1
MsgBox(64, $_titelMsg, 'Der Ordner' & @LF & '"' & $_path & '"' & @LF & _
'existiert nicht.' & @LF & _
'Das Programm wird beendet.')
Exit
Case $_err = 2
MsgBox(64, $_titelMsg, 'Keine entsprechenden "PDF-Dateien" im' & @LF & _
'angegebenen Ordner vorhanden.' & @LF & _
'Das Programm wird beendet')
Exit
Case $_err = 4
MsgBox(64, $_titelMsg, 'Im Ordner' & @LF & '"' & $_path & '"' & @LF & _
'sind keine entsprechenden Dateien enthalten.' & @LF & _
'Das Programm wird beendet.')
Exit
Case Else
MsgBox(64, $_titelMsg, 'Unbekannter interner Fehler.' & @LF & _
'Das Programm wird beendet.')
Exit
EndSelect
Exit
EndIf
; Array sortieren und Erstellung des Parameterstrings für den Start mit AcroReader weiter unten
If _ArraySort($_fArray, 0, 1) Then
For $i = 1 To $_fArray[0]
Select
Case $i < $_fArray[0]
$_oFileToLoad &= '"' & $_fArray[$i] & '"' & ' '
Case $i = $_fArray[0]
$_oFileToLoad &= '"' & $_fArray[$i] & '"'
EndSelect
Next
; Start AcroReader & Parameterstring und Fehlerbehandlung
Local $_run = Run($_acroPath & $_oFileToLoad, $_path)
If $_run = 0 Then
MsgBox(64, $_titelMsg, 'Bei der Ausführung ist ein unbekannter Fehler aufgetreten!' & @LF & _
'Das Programm wird beendet.')
Exit
Else
Local $_wWait = WinWait('[CLASS:AcrobatSDIWindow]')
WinSetState($_wWait, '', @SW_SHOWDEFAULT)
Send('!n1') ; Erster Reiter im AcroReader wird aktiviert
; kleine GUI mit "Schließen"-Button, soll später durch "_ispressed" ersetzt werden
Local $_hGUI = GUICreate($_titelMsg, 100, 50, 0, 0, BitOR($WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_POPUP), -1, $_wWait)
Local $_Button = GUICtrlCreateButton('Schließen', 10, 10, 80, 30)
GUISetState(@SW_SHOW)
While 1
Local $_msg = GUIGetMsg($_hGUI)
If $_msg = $_Button Then ExitLoop
WEnd
ProcessClose($_run)
GUIDelete($_hGUI)
EndIf
Else
MsgBox(64, $_titelMsg, 'Bei der Ausführung ist ein unbekannter Fehler aufgetreten!' & @LF & _
'Das Programm wird beendet.')
Exit
EndIf
Exit
Alles anzeigen
Nun suche ich einen Weg, beim gestarteten AcroReader das Schließen-"X" und wenn möglich auch "ALT+F4" / "Strg+F4" zu deaktivieren.
Leider kann ich die entsprechenden pdf-Docs nicht mitliefern. Ist aber, glaube ich, für meine Anfrage auch gar nicht nötig.
Vielleicht kann mir jemand helfen.
"In guter Hoffnung" und bis neulich ..
AutoItler
Ps.: Bin auch dankbar für jede Verbesserung am gesamten Code.