Visible Tray Icon

  • Guten Morgen,

    ich weiß, dass das Thema schon bis zum Erbrechen durchthematisiert wurde, aber ich finde keine funktioniernde Lösung...

    Ich habe ein Programm (UltraVNC), was als Systemdienst läuft, also man sieht nur ein Tray unten rechts in der Ecke.


    Über dieses habe ich auch mittels eines Codesnippets viele Informationen herausgefunden.

    index: 1 visible: True handle: 0x00030362 pid: 7404 proc: winvnc.exe title: WinVNC Tray Icon tooltip: WinVNC - 53.26.191.27 - M067L1039510 - application - vnchook

    Nichts desto trotz bekomme ich es nicht hin, auf dieses Symbol mit der rechten Maustaste zu klicken. Egal, welchen der vielen Codesnippets ich dafür versucht habe, es heißt immer "Trayicon was not found"

    das Produktivsystem ist folgendes


    Könnt ihr mir dabei bitte helfen?

    Danke euch vielmals und schönes Wochenende.

  • Hi Bitnugger,

    habe ich gerade eben versucht, wenn ich den Code direkt per F5 ausführe, ist dieser ach ca 0,6 Sekunden fertig, es passiert aber leider nichts,sprich kein rechtsklick...

    wie müsste die zweite zeile aussehen, um einen doppelklick mit links zu generieren?

    Code
    ControlClick($hWnd, '', '', 'left', 2)

    Wäre das so richtig?

  • Test das hier mal:

  • Hi Bitnugger,

    erst einmal vielen Dank für deine Hilfe. Wie folg reagiert dein Script.

    Wenn ich es unberührt einfüge, bekomme ich nur "Systemtray not found"

    dann habe ich deinen Code mal ein wenig durchforstet und folgendes gesehen

    Code
    $g_hSysTray = ControlGetHandle('[CLASS:Shell_TrayWnd]', '', '[CLASS:ToolbarWindow32; INSTANCE:3]')

    ändere ich dort INSTANCE:3 auf INSTANCE:1, bekomme ich "Icon was not found in systemtray"... ( bei früheren Versuchen habe ich herausgefunden, dass ich den Systemtray wie folgt mit der linken Maustaste "anklicke")

    Code
    $hTaskBarHandle = WinGetHandle("[Class:Shell_TrayWnd]", "")
    ControlClick($hTaskBarHandle, "", "[CLASS:Button; INSTANCE:1]")

    ABER: bei dieser Variante spuckt mir das "Consol write" auch was aus...

    die Variable $sText gibt mir den "Namen" meines Netzwerkadapters an, waws bedeuten würde, dass wir ein Symbol in der Leiste zu weit rechts sind...

    Hilft dir das, mir weiter zu helfen? :)

    Nochmals vielen Dank

    Lieben Gruß tommii

  • die Variable $sText gibt mir den "Namen" meines Netzwerkadapters an, waws bedeuten würde, dass wir ein Symbol in der Leiste zu weit rechts sind...

    Tja... bei mir ist es die Suchleiste... wozu man auch im hinterkopf behalten muss, dass die Taskleiste ja kein fixes Konstrukt ist, sondern doch schon recht freizügig anpassbar ist. Doch vor allem muss klar ein, dass sie aus mehreren Bereichen besteht, und auf die sehr unterschiedlich zugegriffen werden muss, weil die Controls ja nicht vom selben Typ sind.

    Wenn du in dem AutoIt-Info-Tool im Menü Options den Haken bei Freeze raus nimmst (danach auf eine leere Stelle auf dem Desktop klicken), die Taskleiste dann nicht automatisch ausblenden lässt, kannst du mit der Maus über die Taskleiste fahren und siehst dann in dem AutoIt-Info-Tool welche Handles du wofür brauchst.

  • Hi Bitnugger,

    stimmt, bei Windows 10 ist das ganze ein wenig anders gestaffelt...auf dem Rechner bzw. den Rechnern, auf denen das ganze laufen soll, ist Windows 7 installiert

  • Hey Racer, leider nicht so ganz...ich stehe mittlerweile ziemlich auf dem schlauch von meinen ganzen testfiles...naja, im schlimmsten fall muss ich das ätzenderweise über mousemoves machen :/

    danke dir/euch trotzdem

  • Kleines Update...mir ist folgendes Aufgefallen, was wahrscheinlich "sämtliche" von euch angebotene Hilfen zum Erfolgführen lässt :)

    der kleine "Pfeil", den man klicken muss, um die Trays zu sehen, ist "class:Button"...

    das Trayfenster selber ist dann class:NotifyIconOverflowWindow

    ändere ich das also in euren Snippets und lasse vorher via Mausklick auf den Button klicken, funktionieren alle eure Vorschläge :)

    Danke euch Vielmals

  • Hier mal ein kleines Script, mit dem man sich Infos zu dem Fenster anzeigen lassen kann, das sich unter dem Cursor befindet:

    Wenn ich wieder etwas Zeit habe, erweitere ich es noch etwas... die Instance mache ich aber heute noch rein.

    Einmal editiert, zuletzt von Bitnugger (24. September 2020 um 01:21)