Taskbar Icon und Icon in der GUI bei einer au3 Datei ändern

  • Hallo,

    (a)

    wenn ich eine au3 Datei über eine Verknüpfung mit der AutoIt.exe ausführe, kann ich das SysTrayIcon mit TraySetIcon ändern, ohne eine exe kompillieren zu müssen.

    Wie kann ich das Icon einer aus dem Scripteditor oder über eine Verknüpfung ausgeführten au3 Datei auf der Taskleiste und in der GUI / Programmoberfläche - Titelleiste ändern, ohne eine exe kompillieren zu müssen?

    Ich nutze „ISN Autoit Studio“ - habe dort aber keinen Eintrag für das Icon in der GUI und für die Taskleiste finden können.

    (b)

    Was ist heutzutage der einfachste Weg, um das Systray-Icon mit einer eigenen Funktion zu belegen:

    Linker und rechter Mausklick auf das au3-Systray-Icon lösen - ohne Anzeige eines Kontextmenüs - jeweils eine unterschiedliche Funktion aus - nur wie?

    Danke :)

  • Hi,

    AutoIt
    GUISetIcon()

    Setzt das Icon get GUI, aber das Icon in der Taskleiste ist leider unabhängig davon.

    Edit:
    Da AutoIt solange es nicht Kompiliert ist über die "AutoIt3.exe" ausgeführt wird, müsste man das Icon von der ändern vermute ich.

    Einmal editiert, zuletzt von Zeitriss (18. Juni 2016 um 15:00)

  • Ich habe das Beispiel aus der deutschen Hilfe für TraySetOnEvent ausprobiert.

    frage ich "Maus runter", "Maus hoch" und "Doppelklick" ab erscheint beim "Doppelklick" die Auswertung:

    linke Maustaste - runter
    linke Maustaste - hoch
    linke Maustaste - Doppelklick
    linke Maustaste - hoch

    Wie kann ich eine Unterscheidung zwischen "Maus runter", "Maus hoch" und "Doppelklick" erreichen - im eben genannten Script aus der Hilfe?

    Ich brauche einen Unterschied in der Auswertung, wenn folgende Zustände abgefragt werden:

    Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
    Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOWN
    Case @TRAY_ID = $TRAY_EVENT_PRIMARYUP

    Beim "Doppelklick" sollen nicht Maus runter / hoch getriggert werden.

    2 Mal editiert, zuletzt von AutoMit (18. Juni 2016 um 16:34)

  • Ein doppelklick besteht aber nunmal aus Maus hoch bzw. runter. Da bleibt dir nur übrig mit timer zu arbeiten, dass wenn in einem Zeitraum von x zweimal das Maus hoch bzw. runter kommt es nur als doppelklick gewertet wird. Eine ziemlich unzuverlässige Sache.

    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.

  • Ein doppelklick besteht aber nunmal aus Maus hoch bzw. runter. Da bleibt dir nur übrig mit timer zu arbeiten, dass wenn in einem Zeitraum von x zweimal das Maus hoch bzw. runter kommt es nur als doppelklick gewertet wird. Eine ziemlich unzuverlässige Sache.

    Das stimmt. Da jedoch bei anderen Programmiersprachen eine Unterscheidung zwischen Doppelklick und linker Maustaste möglich ist, sollte das bei AutoIt auch drin sein :)

    Nur wie - das ist die Frage.

  • So in etwa?

    • Offizieller Beitrag

    Möglich ist das (wie chip bereits schrieb mit Hilfe eines Timers), aber wozu braucht man so eine Unterscheidung?
    Ein Klick auf ein Item wird über die ID registríert (TrayItemSetOnEvent) und die entsprechende Funktion (oder bei TrayGetMsg die Case-Anweisung) ausgeführt.

    Das Problem bei der Auswertung, ob Klick oder Doppelklick auf das TrayIcon ist halt, dass man die Doppelklick-Verzögerung abwarten muss.
    Hier mal ein Beispiel:

  • Das stimmt. Da jedoch bei anderen Programmiersprachen eine Unterscheidung zwischen Doppelklick und linker Maustaste möglich ist, sollte das bei AutoIt auch drin sein :)
    Nur wie - das ist die Frage.

    Warum? Nur weil es Dieselautos gibt, kannst trotzdem nicht in Benziner Diesel reinfüllen.

    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.