AutoIt Icons in TaskBar verschwinden nicht

  • Hallo,

    bei mir tritt das Phänomen auf, dass jedes mal wenn ein AutoIt Skript gestartet wird in der Taskleiste ein Icon entsteht und dieses nach Ende des Skriptes nicht verschwindet. Damit es verschwindet muss man erst in der Taskbar über das Icon mit der Maus fahren.

    [autoit]

    #NoTrayIcon

    [/autoit]


    am Anfang des Skriptes setzten geht zwar, hat aber den unschönen Effekt, dass man das Skript während es ausgeführt wird nicht einfach über die Taskleiste pausieren oder beenden kann.

    [autoit]

    Opt("TrayIconHide",1)

    [/autoit]


    an das Ende jedes Skriptes zu setzen hat auch nicht geholfen, das Icon bleibt einfach in der Taskleiste sichtbar. Kann man irgendwie dafür sorgen, dass die Icons nach Beendung des Skriptes in der Taskleiste verschwinden?

    Einmal editiert, zuletzt von Keman12 (10. März 2011 um 09:48)

    • Offizieller Beitrag

    Bei Win7 ist das normal, ich habe bein testen manchmal 30 und mehr Icons in "Ausgeblendete Symbole einblenden".
    Das Fenster wird erst geupdatet wenn man mit der Maus drüberfährt.
    Wie das bei WInXp ist weiß ich nicht mehr.

    Edit: http://antworten.german.softpicks.net/antworten/them…es-154876-1.htm

  • Kann es sein das es zufällig ist ob die Icons da bleiben oder verschwinden, weil ich hab gerade nochmal den Code ausgeführt (nicht verändert) und auf einmal verschwinden die Icons sobald ein Skript zu Ende ist und ein neues startet?

    Anmerkung:
    Jetzt 10 Minuten später geht es nicht mehr, jetzt bleiben die Icons wieder da, aber als ich die Skripte kurz nach dem Neustart ausgeführt habe sind die Icons immer verschwunden, gibt es dafür irgendeine Erklärung?

    Einmal editiert, zuletzt von Keman12 (11. März 2011 um 10:49)

  • Also bei mir verschwinden sie immer, wenn das AutoIt-Skript ordnungsgemäß beendet wird. Ist das bei dir generell mit allen Skripten ein Problem oder nur bei bestimmten, verwendest du z.B. AutoItObject?

  • AutoItObject verwende ich glaube ich nicht, bzw. kenne ich das gar nicht^^ Es gibt bei mir ein Hauptskript das mehrere andere Skripte aufruft, die anderen Skripte werden alle abgearbeitet und dann mit Exit am Schluss beendet, nur das Icon von diesen "Unterskripten" bleibt da, solange bis man mit der Maus drüber fährt, dann verschwinden sie. Und manchmal verschwinden die Icons auch einfach ohne das man mit der Maus drüberfährt jedoch ist das absolut zufällig (bzw. konnte ich bisher keine Systematik erkennen). Der ablaufende Code ist dabei jedoch immer der gleiche.

  • Ist bei mir auch so, allerdings auch bei anderen Programme nicht nur bei Autoit und auch auf verschiedenen Rechnern. Kannst nicht ändern ist schlicht eine Make von Win 7.

    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.

  • Beendest du alle Skripte per Exit? Wenn nicht, solltest du das mal probieren. Falls du ProcessClose verwendest, dann ist es logisch, dass das Icon stehen bleibt.

  • Ich verwende Windows XP, nicht Windows 7 :) Bei allen Skripten steht am Ende ein exit, ProcessClose wird gar nicht verwendet, was man noch versuchen könnte ist dann im Hauptskript nachdem das Skript zurückgekehrt ist (also das andere Skript am Ende sein muss oder einen Fehler verursacht hat) ein ProcessClose zu machen, würde das gehen? Was mich halt so verwundert ist, dass es manchmal geht und manchmal nicht mit den Icons.

  • Wenn du ProcessClose verwendest wird das Skript sofort abgebrochen und es hat keine Zeit mehr, das Icon zu löschen. Das ist auf jeden Fall keine Lösung.

  • Hm, ist dieser Befehl nicht das gleiche als wenn ich über den TaskManager gehe und dort den Prozess beende? Dann verschwindet das Icon doch eigentlich, oder?

    • Offizieller Beitrag

    Das ist das selbe wie bei ProcessClose.

    Bei mir verschwinden die Icons nur nicht, wenn ich das Script per Scite abbreche, hab ich vergessen zu erwähnen.

  • Vielleicht könnte es ja helfen, eventuell verweiste Elemente aus der
    Taskleiste zu entfernen (unter Ausgeblendete Symbole einblenden / Anpassen) !? ?(
    Da sammelt sich ja mit der Zeit so einiges an, was sich nicht von selbst löscht!!!

    Klappt unter Windows 7 (Vista und XP kann ich nicht sagen)

    Hier mal als Script: (Regs löschen, Prozess explorer.exe schließen und dann ab und neu anmelden)

    [autoit]

    RegDelete ("HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify", "IconStreams")
    RegDelete ("HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify", "PastIconsStream")
    ProcessClose ("explorer.exe")
    Shutdown (0)

    [/autoit]
    • Offizieller Beitrag
    Zitat

    Klappt unter Windows 7 (Vista und XP kann ich nicht sagen)

    Habe es unter Win7/64 getestestet und ergibt keine Änderung. Die verweisten Icons verschwinden erst wenn man mit der Maus drüberfährt.
    Ob es am 64 BIt BS liegt, kann ich nicht sagen....

  • Wie wäre es, ein TraySetState(2) per OnAutoItExitRegister aufzurufen?

    [autoit]

    OnAutoItExitRegister("__TrayIconHide")
    Func __TrayIconHide()
    TraySetState(2)
    EndFunc

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

    MsgBox(0, '', "h")

    [/autoit]
  • Also ich kenne das Phänomen auch nur bei folgenden Dingen:

    1. Script wird per processclose oder taskmanager beendet
    2. Script wird über den Editor per stop execution beendet
    3. Script wird aufgrund eines Fehlers nicht sauber beendet (z.B. Array Größe überschritten usw.)

    Ich verwende aber auch nicht die Windows Funktion um inaktive Symbole zu verstecken, sondern lasse grundsätzlich alle Tray Icons einblenden. Mag durchaus sein, dass Windows da einige Macken hat und diese Symbole dann noch im Cache verbleiben.