Script reagiert zu langsam

  • Hallo,
    ich habe mir mal ein Script zusammengeschrieben, aber jetzt ist da im Code irgendetwas, was das Script langsam arbeiten lässt.

    sprich es reagiert viel zu langsam beei der Texteingabe und bei ButtonClick reagiert es 2 oder mehr Sekunden zu langsam

    Ich Poste euch mal den Code und hoffe ihr könnnt mir helfen, dass es schneller geht

    Spoiler anzeigen
    [autoit]


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

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

    Local $Button1
    Local $Button2
    Local $Input1
    Local $Input2
    Local $Input3
    Local $passwort1
    Local $passwort2

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 239, 65, 491, 237)
    $Input1 = GUICtrlCreateInput("", 8, 8, 137, 21, $ES_PASSWORD)
    $Input2 = GUICtrlCreateInput("", 8, 32, 137, 21, $ES_PASSWORD)
    $Input3 = GUICtrlCreateInput("", 8, 32, 137, 21, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_HIDE)
    $Button1 = GUICtrlCreateButton("Setzen", 152, 32, 75, 25)
    $Button2 = GUICtrlCreateButton("Eingabe", 152, 32, 75, 25)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    pwsetzen()

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

    Case $Button2
    pweingabe()

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

    EndSwitch
    process()
    WEnd

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

    Func process()
    Local $PID = ProcessExists("taskmgr.exe")
    If $PID Then ProcessClose("taskmgr.exe")
    Sleep(50)
    WinActivate("Form1")
    EndFunc

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

    Func pwsetzen()
    $passwort1 = GUICtrlRead($Input1)
    $Passwort2 = GUICtrlRead($Input2)
    If $passwort1 = $passwort2 Then
    _desktopkill()
    GUICtrlSetState($Input1, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Input3, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    Else
    MsgBox(0, "falsches Passwort","Die Passwörter stimmen nicht überein, bitte setzen Sie ein neues Passwort!")
    GUICtrlSetData($Input1, "")
    GUICtrlSetData($Input2, "")
    EndIf
    EndFunc

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

    Func pweingabe()
    If GUICtrlRead($Input3) = $passwort2 Then
    MsgBox(0,"Richtig","Das war das richtige Passwort!")
    _desktopshow()
    Else
    MsgBox(0,"Falsch","Das war das falsche Passwort!")
    GUICtrlSetData($Input3, "")
    EndIf
    EndFunc

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

    Func _desktopkill()
    Opt('WINTITLEMATCHMODE', 4)
    ControlHide('classname=Shell_TrayWnd', '', '')
    ControlHide('classname=Progman', '', '')
    winsetstate("Start", "", @SW_HIDE)
    EndFunc

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

    Func _desktopshow()
    Opt('WINTITLEMATCHMODE', 4)
    ControlShow('classname=Shell_TrayWnd', '', '')
    ControlShow('classname=Progman', '', '')
    winsetstate("Start", "", @SW_SHOW)
    EndFunc

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

    LG
    Ququknife

    Frühere Werke: PC-Nutzungslaufzeit

    2 Mal editiert, zuletzt von Ququknife (11. November 2012 um 02:20) aus folgendem Grund: Präfix Änderung

  • Funktioniert bei mir wunderbar und ohne irgendwelche Verzögerungen:

    Spoiler anzeigen
    [autoit]

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

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

    Local $Button1
    Local $Button2
    Local $Input1
    Local $Input2
    Local $Input3
    Local $passwort1
    Local $passwort2

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 239, 65, 491, 237)
    $Input1 = GUICtrlCreateInput("", 8, 8, 137, 21, $ES_PASSWORD)
    $Input2 = GUICtrlCreateInput("", 8, 32, 137, 21, $ES_PASSWORD)
    $Input3 = GUICtrlCreateInput("", 8, 32, 137, 21, $ES_PASSWORD)
    GUICtrlSetState(-1, $GUI_HIDE)
    $Button1 = GUICtrlCreateButton("Setzen", 152, 32, 75, 25)
    $Button2 = GUICtrlCreateButton("Eingabe", 152, 32, 75, 25)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Button1
    pwsetzen()

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

    Case $Button2
    pweingabe()

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

    EndSwitch
    process()
    WEnd

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

    Func process()
    If ProcessExists("taskmgr.exe") Then
    ProcessClose("taskmgr.exe")
    Sleep(50)
    WinActivate("Form1")
    EndIf
    EndFunc

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

    Func pwsetzen()
    $passwort1 = GUICtrlRead($Input1)
    $Passwort2 = GUICtrlRead($Input2)
    If $passwort1 = $passwort2 Then
    _desktopkill()
    GUICtrlSetState($Input1, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Button1, $GUI_HIDE)
    GUICtrlSetState($Input3, $GUI_SHOW)
    GUICtrlSetState($Button2, $GUI_SHOW)
    Else
    MsgBox(0, "falsches Passwort","Die Passwörter stimmen nicht überein, bitte setzen Sie ein neues Passwort!")
    GUICtrlSetData($Input1, "")
    GUICtrlSetData($Input2, "")
    EndIf
    EndFunc

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

    Func pweingabe()
    If GUICtrlRead($Input3) = $passwort2 Then
    MsgBox(0,"Richtig","Das war das richtige Passwort!")
    _desktopshow()
    Else
    MsgBox(0,"Falsch","Das war das falsche Passwort!")
    GUICtrlSetData($Input3, "")
    EndIf
    EndFunc

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

    Func _desktopkill()
    Opt('WINTITLEMATCHMODE', 4)
    ControlHide('classname=Shell_TrayWnd', '', '')
    ControlHide('classname=Progman', '', '')
    winsetstate("Start", "", @SW_HIDE)
    EndFunc

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

    Func _desktopshow()
    Opt('WINTITLEMATCHMODE', 4)
    ControlShow('classname=Shell_TrayWnd', '', '')
    ControlShow('classname=Progman', '', '')
    winsetstate("Start", "", @SW_SHOW)
    EndFunc

    [/autoit]
  • Mit $Form1 = GUICreate("Form1", 239, 65, 491, 237,-1,$WS_EX_TOPMOST) könntest du machen das es immer im Vordergrund ist dann brauchst du es nicht mit mit WinActivate in den Vordergrund holen.

  • wie wäre es wenn du ein SplashImageOn oder ein SplashTextOn erstellt, das den ganzen Bildschirm ausfüllt ist einfacher als wenn du Desktopinhalte ausblenden lässt, vorallem kannst du das ganze dann Grafisch verschönern ;)

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

  • Das ist doch ganz einfach, habe dir mal ein Beispiel dafür geschrieben....

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $width = @DesktopWidth
    $height = @DesktopHeight
    $bFile = "bild.jpg" ; <== kann natürlich durch jedes andere Bild ersetzt werden und man kann nahezu alle Bilddateien verwenden!

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("SplashImageOn", 219, 76, 192, 124)
    $Button1 = GUICtrlCreateButton("Setzen", 136, 48, 75, 25)
    $Input1 = GUICtrlCreateInput("", 8, 48, 121, 21)
    $Label1 = GUICtrlCreateLabel("Zeit setzen in Sekunden, wielange", 8, 8, 167, 17)
    $Label2 = GUICtrlCreateLabel("Angezeigt werden soll!", 8, 24, 110, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $string = GUICtrlRead($Input1)
    _SplashImage()
    EndSwitch
    WEnd

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

    Func _SplashImage()
    SplashImageOn("SplashImageOn", $bFile, $width, $height) ; Ich habe die Größe des SplashImageOn in 2 Variablen gelegt 1. $width = Breite 2. $height = Höhe
    ; SplashImageOn("SplashImageOn", $bfile, @DesktopWidth, @DesktopHeight) <== natürlich kannst du das auch so schreiben !
    Sleep($string * 1000) ; * 1000 ist einfach nur für Umrechnung von Millisekunden in Sekunden !
    SplashOff()
    EndFunc

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

    Ich hoffe ich konnte helfen ;)

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

    Einmal editiert, zuletzt von Facemix (18. November 2012 um 12:11)