Schließen einer "ge - run() - ten" Anwendung deaktivieren

  • 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

    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. :thumbup:

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.

    Einmal editiert, zuletzt von AutoItler (30. Mai 2017 um 14:00)

  • Probier mal aus ob das mit Acrobat geht, mit Notepad klappt es bei mir.

    Quelle

  • Hallo Floops,
    vielen Dank für Deine umfassenden Anregungen.
    bis auf die Deaktivierung von "ALT+F4" beim AcroReader hat alles nach entsprechender Modifikation funktioniert.
    "X" - deaktiviert
    "Strg+F4" - deaktiviert (Schließen einzelner Tabs im AcroReader)
    nur

    AutoIt
    HotKeySet("!{F4}", "_alt_f4")
    ;
    ;
    ;
    Func _alt_f4()
    ; nichts (ich hab Return genommen ...)
    EndFunc

    funktioniert nicht. Irgendeinen genialen Einfall?

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.

    • Offizieller Beitrag

    Wenn HotKey nicht hilft, musst du in der Messageverarbeitung systemnah ansetzen und <Alt+F4> nicht an das System durchreichen. Das macht man mit einem Hook.
    Wichtig ist, die Hookfunktion zu verlassen, wenn das gewünschte Fenster nicht aktiv ist. Auch die Systembereinigung beim Beenden ist ein absolutes Muss!

    EDIT:

    Ich habe den Code nochmal abgeändert. In der ersten Version wäre <F4> immer "verschluckt" worden. :whistling:
    Sind auch noch ein paar Kommentare bei.

  • Hallo Bugfix,
    danke für Deine Anregung. Die Lösung sieht für mich erst mal sehr kompliziert aus, obwohl den Ansatz schon verstehe.
    Ich muss mir das alles in Ruhe "zur Brust nehmen". Ich will ja nicht nur einfach Code kopieren und einfügen, sondern auch verstehen, was ich da copy&paste.
    Noch 'nen schönen Abend allen, die sich hier engagiert haben.
    Ich melde mich auf jeden Fall, wenn's Prob gelöst ist....

    MfG., AutoItler

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.

  • Hallo BugFix,
    das bedeutet, dass ich folgenden Teil Deines Scripts:

    Code
    OnAutoItExitRegister('OnAutoItExit')
    Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
    Global $hWin   ; = Handle des AcrobatReader
    Global $fActive = False  ; <== to allow hook only on this gui
    ;~ Global $isAlt = False   -- besser als Static in der Callbackfunktion

    gar nicht brauche. Der Rest - Umleitung v. ALT+F4 auf einen Dommy - ist auch für mich als Anfänger verständlich ....
    Ich bedanke mich bei Dir. Wieder was gelernt.
    MfG., AutoItler

    Lege dich nie schlafen ohne zu wissen,
    dass du an diesem Tag etwas Gutes getan hast.