GUI komplett sperren

  • Hallo, zur Zeit benutze ich GUISetState(@SW_Lock) um meine GUI zu sperren und GUISetState(@SW_UnLock) um sie zu entsperren. Aber selbst wenn die GUI gelockt ist, kann man die Comboboxen öffnen und wenn man eine Checkbox anklickt, wird diese aktiviert/deaktiviert, wenn die GUI Unlocked ist. Gibts da andere Befehle? Ich könnte natürlich jedes Teil in der GUI einzeln DISABLE'n, wäre aber zu viel Aufwand...
    Danke schonmal.

    Einmal editiert, zuletzt von NoName (15. März 2008 um 20:13)

    • Offizieller Beitrag

    Hallo

    Ich hab ma schnell was für dich geschrieben:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $hChild = ''

    [/autoit] [autoit][/autoit] [autoit]

    $hMaingui = GUICreate("test" ,200,100)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateCheckbox("testtest",10,10,100,15)
    GUICtrlCreateCombo("",10,35,100)
    GUICtrlSetData(-1,"Test|test²³|lol|bla","test")

    [/autoit] [autoit][/autoit] [autoit]

    ;CHILD
    $hChild = GUICreate("",200,100,0,0,$WS_POPUP,$WS_EX_MDICHILD,$hMaingui)
    WinSetTrans($hChild,"",1)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW,$hMaingui)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    TrayTip("","locked für 5 Sekunden",3)
    _LockGUI(True)
    Sleep(5000)
    _LockGUI(False)
    TrayTip("","Unlocked",3)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _LockGUI($iLock)
    If $iLock Then
    GUISetState(@SW_LOCK,$hMaingui)
    GUISetState(@SW_SHOW,$hChild)
    Else
    GUISetState(@SW_UNLOCK,$hMaingui)
    GUISetState(@SW_HIDE,$hChild)
    EndIf

    EndFunc

    [/autoit]


    Hoffe es hilft ;)

    Mfg Spider

  • Hallo,

    wenn es wirklich darum geht dem User während des Scripts jede Kontrolle zu entziehen kannst Du mit BlockInput() arbeiten.

    Gruß,

    TrueMu

    Edit GtaSpider: Ich war schon wieder schneller :D

    2 Mal editiert, zuletzt von GtaSpider (15. März 2008 um 19:53)

  • Danke für die Antworten.
    GtaSpider : Ausgeklügelt was du da gemacht hast, war eine komische Art, hat aber seinen Dienst erfüllt, bis auf... Das Script sollte gesperrt sein, bis man eine MessageBox schließt, nur die MessageBox wurde dann halt auch geblockt^^
    @TrueMu: Ne, das habe ich nciht gesucht ;)
    peethebee : Genau das brauchte ich, ich wusste nicht, dass es zusammen mit @SW_ auch Disable und Enable gibt. Aber das erfüllt genau die Vorraussetzungen.
    Damit gelöst.
    Danke nochmal, MfG