Script wird langsamer, wenn die Maus nicht bewegt wird?!

  • Hi,

    jede meiner Schleifen braucht um die 30ms für einen Durchlauf, mal mehr mal weniger, je nachdem was gerade aktiv ist.
    Wenn das Script allerdings nur so vor sich hin werkelt, wird die Zeit pro Durchlauf immer länger, teilweise bis 100ms.
    Wenn ich allerdings ständig den Mauspfeil bewege, "friert" mein Script nicht ein und läuft so flüssig wie es kann weiter.

    Woran kann das liegen? Selbst die Kompilierte Version hat das Problem. Hat das überhaupt was mit AutoIt zu tun oder ist es
    eher ein Windows Phänomen? ?(

    ~~~~~~~~~~~~~~~~~~~~~~~~
    Grüße
    Cape-City

    Grafik/Sound Demo (InfoBox)

    OS: Windows 10 Pro - System: Intel Core i5-3320M CPU @ 2.60GHz - AutoIt-Version: 3.3.14.2

  • :Glaskugel: Ich befrage mal ein Glaskugel. Vielleicht hat sie das Script gesehen und kann so sagen, wo das Problem liegen könnte. Ich kann das ohne Script nämlich nicht. Sorry. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

    • Offizieller Beitrag

    Wenn ich allerdings ständig den Mauspfeil bewege, "friert" mein Script nicht ein und läuft so flüssig wie es kann weiter.

    Das ist der "normale" Effekt bei einer Msg-Loop-Schleife. Wenn Du also GUIGetMsg benutzt, dann wird das immer so sein, weil der Befehl damit intern die Prozessorlast reduziert.
    Willst Du das vermeiden, musst Du zum OnEventMode wechseln. IMHO sowieso der bessere Modus, weil man mehr funktionsorientiert arbeitet.
    Edit: Wenn's unbedingt GUIGetMsg sein muss, dann die kritischen Teile per Timer (AdlibRegister oder besser noch die Timer-UDF) aufrufen.

  • :Glaskugel: Ich befrage mal ein Glaskugel. Vielleicht hat sie das Script gesehen und kann so sagen, wo das Problem liegen könnte. Ich kann das ohne Script nämlich nicht. Sorry. ;)

    Das bezog sich auf meine hier bereits gepostete Version der Grafik und Sounddemo. Hatte ich vergessen zu erwähnen,
    aber die :Glaskugel: von @Oscar hat es erfasst ;) Ich werde es ausprobieren. Danke für den Tip!

    ~~~~~~~~~~~~~~~~~~~~~~~~
    Grüße
    Cape-City

    Grafik/Sound Demo (InfoBox)

    OS: Windows 10 Pro - System: Intel Core i5-3320M CPU @ 2.60GHz - AutoIt-Version: 3.3.14.2

  • Willst Du das vermeiden, musst Du zum OnEventMode wechseln. IMHO sowieso der bessere Modus, weil man mehr funktionsorientiert arbeitet.

    Genau der richitge Tip! So hatte ich ganz zu Anfang auch gemacht, allerdings für jeden Event eine eigene Func um die Dinge zu bearbeiten. Mit GUIGetMsg hatte ich es endlich alles in einer Func mit einer Switch-Abfrage.

    Jetzt ist es nach wie vor alles in einer Func, allerdings mit einer Select-Abfrage und @GUI_CtrlId ist mein bester Freund :)
    Alle Events auf Labels, Images, etc werden sauber erkannt und mit @GUI_CtrlId übergaben. TOP!

    ~~~~~~~~~~~~~~~~~~~~~~~~
    Grüße
    Cape-City

    Grafik/Sound Demo (InfoBox)

    OS: Windows 10 Pro - System: Intel Core i5-3320M CPU @ 2.60GHz - AutoIt-Version: 3.3.14.2

  • Hallo @AutoMit

    hier der Beispielcode für die Abfrage der GUI:

    ~~~~~~~~~~~~~~~~~~~~~~~~
    Grüße
    Cape-City

    Grafik/Sound Demo (InfoBox)

    OS: Windows 10 Pro - System: Intel Core i5-3320M CPU @ 2.60GHz - AutoIt-Version: 3.3.14.2

    4 Mal editiert, zuletzt von Cape-City (16. Dezember 2016 um 12:08)