Hauptform sperren/entsperren

  • Ich möchte gerne wenn eine MsgBox geöffnet ist das hauptformular sperren, damit dort nicht hinein geklickt werden kann.Dazu habe ich jetzt mal die Funktion GUISetState(@SW_DISABLE, $Form1) verwendet.
    Und unter der MsgBox wieder mit GUISetState(@SW_ENABLE, $Form1) aktiviert.


    Jetzt habe ich allerdings das Problem das mit das HauptGUI im Windows in den Hintergrund springt.
    Ich muß es dann erst wieder unten in der Taskleiste anklicken um es anzuzeigen.

    Gibt es da eine einfach Möglichkeit das zu verhindern? Oder muß ich das dann wieder umständlich mit Focus in den Vordergrund rücken?

  • Bei mir springt da nichts in den Hintergrund. Bitte poste mal eine lauffähiges Beispiel in dem dein Problem passiert.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hier:

  • Hey

    einfach nach dem GUISetState(@SW_ENABLE... folgende Zeile einfügen:

    AutoIt
    WinActivate("Installierte Produkte - Windows 7 32bit (Lenovo T450)")

    Das ist der Titel deiner GUI. Mit WinActivate bekommt die GUI wieder den Fokus.

    Nachtrag: Wenn sich der Titel im Programmverlauf mal ändern sollte, dann würd ich den Titel bei einer Änderung in eine globale Variable speichern und
    diese Variable bei WinActivate eintragen.

  • Warum der komische Effekt genau passiert, kann ich dir nicht sagen. So kannst du das aber umgehen:

    AutoIt
    GUISetState(@SW_ENABLE, $Form1)
    GUISetState(@SW_RESTORE, $Form1)

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.