Splash Screen in Schleife

  • Hallo liebe Autoit Gemeinde, ich benötige mal wieder einen freundlichen Denkanstoß. Ich habe ein kleines TrayScript gebastelt, welches mir verschiedene Systemwerte anzeigt, bspw. verbleibender RAM, Prozessor Auslastung... weitere werden folgen. Ich habe es hinbekommen, dass die Anzeige im Tray aktualisiert wird, ohne dass ich imer wieder neu rauf gehen muss, leider funktionieren die eingebauten SplashScreens, die aufpoppen sollen, wenn ein bestimmter Wert untetschritten wird nun nicht mehr, hat jemand ne Idee ? Das Script sieht so aus:

    Ich hoffe es sing keine Globals mehr innerhalb der Funktionen,

    ein schönes Wochenende noch

    lg

  • Hi casi4712 ,

    zunächst der Hinweis: Ich habe "Tidy AutoIt Source", CTRL+T in SciTE, über dein Skript laufen lassen, sodass du im folgenden Code etwas andere Einrückungen sehen wirst. Also nicht verwundert sein 😀 .

    Des Weiteren habe ich Markierungen an gewisse Stellen deines Codes gesetzt, um zu sehen ob überhaupt in die jeweilige Funktion gegangen wird. Dies habe ich einfach mit ConsoleWrite('Bookmark #1' & @CRLF) #2, #3 etc. gemacht. In deiner Funktion Warn2() habe ich den SplashOff() wieder einkommentiert (dieser Befehl war ein Kommentar). Abgesehen davon lief ich bei meinem Test in die FunktionWarn2() und habe den Splash Text angezeigt bekommen.

    💡 Kann somit nicht nachvollziehen, warum es bei dir nicht funktioniert (vorausgesetzt die Schwellenwerte sind unterschritten, die du ja selbst festlegst).

    Ich hoffe es sing keine Globals mehr innerhalb der Funktionen,

    Nein, alles okay diesbezüglich. Allerdings ist deine While Schleife nicht gerade CPU freundlich 😔 . Du solltest bei $a = WinList("[CLASS:tooltips_class32]") darauf prüfen, ob du überhaupt ein Array zurück bekommst und falls nicht irgendetwas tun (aus der Schleife springen etc.). Denn ansonsten läuft dein Skript ohne Auswertung (von RAM, Batterie etc.) einfach weiter und dann bekommst du auch kein Splash Text angezeigt.

    Hoffe dir helfen diese Tipps etwas 🤞 .

    Viele Grüße
    Sven

  • Hi,

    bei mir (Win10 AutoIt 3.3.16.1 Ryzen 1600) werden die Warnhinweise angezeigt. Ich habe alle vorkommenden Hinweise in eine Variable gepackt und zusammen in ein Splash-Fenster geschrieben. Ist jetzt nur noch eine Funktion. Da kannst du dann einfach nur noch weitere Vergleiche und den entsprechenden Text hinzufügen, der der Rest (Nachrichten und Fenstergröße anpassen) läuft dann automatisch.

    Auch hast du im Startpost im Script in Zeile 70 eine falsche Variable verglichen, hab mal alles angepasst, ansonsten funktioniert dein Script hervorragend! :thumbup:

    Ram und Prozessor lassen sich zum Testen mit Prime95 auslasten.

    Allerdings ist deine While Schleife nicht gerade CPU freundlich 😔 . Du solltest bei $a = WinList("[CLASS:tooltips_class32]") darauf prüfen, ob du überhaupt ein Array zurück bekommst und falls nicht irgendetwas tun (aus der Schleife springen etc.).

    Nein. Wenn $a kein Array ist, dann gibts auch kein Ubound und die Schleife endet.

    Denn ansonsten läuft dein Skript ohne Auswertung (von RAM, Batterie etc.) einfach weiter und dann bekommst du auch kein Splash Text angezeigt.

    Das ist doch Sinn und Zweck! Nur wenn das TrayFenster sichtbar ist, wird der Splashtext angezeigt!

  • Hi Andy ,

    Nein. Wenn $a kein Array ist, dann gibts auch kein Ubound und die Schleife endet.

    Ja ich meinte nicht die For-Schleife sondern die äußere While Schleife.

    Das ist doch Sinn und Zweck! Nur wenn das TrayFenster sichtbar ist, wird der Splashtext angezeigt!

    Da hast du Recht. Ich war wohl in geistiger Umnachtung gestern Abend 😅 .
    Damit ist auch das Thema Array $a von oben hinfällig.

    Übrigens auch gute Idee, die Warnungen gleich zusammenzufassen 👍 .


    Ein letzter kleiner Hinweis an casi4712 noch:
    Abgesehen von den beiden folgenden "includes" brauchst du die anderen im Skript nicht.

    AutoIt
    #include-once
    #include <GuiToolTip.au3>
    #include <WinAPISys.au3>

    Viele Grüße
    Sven

  • Hallo, danke erst einmal,

    das ist ja sehr merkwürdig. Ich meine nicht, dass die Warnhinweise, die Schwellwerte sind natürlich nur testweise höher gesetzt, auf Mausover über das TrayIcon kommen, das geht bei mir auch. Aber wenn ich nicht im Tray bin kommen die Spashes nicht. Ich habe auch win 10 pro, aktuell alle Patches drauf. Werde das mal an einem anderen PC testen


    lg und schönen Sonntag noch

  • Aber wenn ich nicht im Tray bin kommen die Splashes nicht

    So, jetzt mal GAAAANZ langsam :theke:

    Die Warnhinweise (Splashes?!) erscheinen NUR DANN, wenn dein Mauscurser über dem Trayicon ist und das kleine Fenster mit den Werten angezeigt wird!

    Genau SO ist die Schleife von dir programmiert und ich gehe davon aus dass das auch so sein muss :Glaskugel:

    Oder willst du die Warnhinweise auch sehen ohne den Maushover über dem Icon?

  • Guten Morgen, na klar will ich die Warnhinweise auch sehen, wenn ich nicht mit der Maus im Tray bin, sonst macht es ja keinen Sinn. Aber ich habe gerade festgestellt, dass das Script in der Tat auf einigen PCs funktioniert und auf anderen nicht, das ist natürlich jetzt irgendwie blöd.

  • na klar will ich die Warnhinweise auch sehen, wenn ich nicht mit der Maus im Tray bin,

    Wieso vergräbst du dann die _Checks()-Funktion in die Schleife?

    Rufe _Checks() einfach direkt nach dem While auf und dann funktioniert das....

  • Hallo und danke noch mal für die vielen Hinweise. Andi, Du meinst jetzt nicht an dieser Stelle:

    AutoIt
    TraySetToolTip($sPreviousFreeRam & " GB" & " Free RAM" & @CRLF & "Aufgeladen: " & $sPreviousBatState & "%" & @CRLF & "Prozessor Auslastung :" & $sPreviousProcLoad & " %" & @CRLF & $sPreviousconState & @CRLF & "SytemDrive free on '" & $strDrive & "' : " & $PreviousfltDriveFreeSpace & " GB")
    
        While True
         _Checks()
            $a = WinList("[CLASS:tooltips_class32]")
  • Genau so...funktioniert das dann?

  • Nein eben nicht,,

    jetzt kommen zwar splashes auch ohne mit der maus im Tray zu sein, aber diese haben mit den Schwellwerten nichsts mehr zu tun und kommen ständig unkrontrolliert, zumindest bei meinem Rechner, vielleicht ist das ja bei die anders


    lg und schöne Woche noch

  • Ja, bei mir kommen die Splashscreens dauerhaft mit sämtlichen Werten...natürlich nur, wenn auch einer der kritischen Werte über/unterschritten wurde.

    Teste mal bitte das Script:

    prime95 lastet bei mir den Prozessor zu 100% aus und RAM fast zu 100...