Fenster aktivieren funktioniert nicht & Taskleiste Icon anklicken

  • Hallo Freunde der automatisierten Schritte,

    (1)

    Wie kann ich ein Icon auf der Startleiste / Taskleiste unter win 8 /64 anklicken?
    Ich weiß z.B. dass ein Excel-Icon auf der Taskleiste ist (MSTaskListWClass), nur wie kann ich das Excel-Icon anklicken? Die Taskleiste ist automatisch ausgeblendet. (nicht verwechseln mit Systray - hier geht es um die größeren Icons :) )

    Wie erhält man eine Liste aller Programme, deren Icons
    (a) auf der Taskleiste sind (die großen Icons)
    und
    (b) im Systray (kleine Icons)?


    (2)

    es gibt Programm-Fenster, die ich nicht mit Autoit - WinActivate - aktivieren kann.

    Erstaunlich ist, dass das jeweilige Fenster gefunden, ein Fensterhandle zurückgegeben, aber das Fenster nicht aktiviert (sprich, nicht in der Vordergrund geholt) wird.

    Timonize (6.59) und PC-Notizz (6.05) - 2 Programme (Delphi ?), lass sich nur aktivieren, wenn sie nicht minimiert sind.

    Wer das testen möchte, hier gibt es z.B. PC-Notizz zum Test:
    http://www.hastasoft.de/Setup_PCNotizz6.exe
    (wer direkt über die Herstellerseite geht, bitte darauf achten, dass die Version 6 zum Test geladen wird. Die Version 7 hat gravierende Änderungen und wird hier nicht genutzt)

    Versuche ich den Fensterstatus mit WinSetState zu setzen, so lassen sich die Fenster danach nicht mehr per Mausklick in der Titelzeile (_) minimieren - also keine Lösung.

    Welche alternativen Wege außer WinSetState gibt es, Fenster zu aktivieren, die nicht wie gewollt auf WinActivate reagieren?

    Beim hier bestimmt bekannten „ISN Autoit Studio“ ist es so, dass ich bei einem geladenen Projekt das Fenster über winactivate "ISN Autoit Studio" (siehe oben) nicht über ein Script aktivieren kann.

    Wenn das „ISN Autoit Studio“ Fenster hingegen im Editormodus geöffnet wird, kann ich es aktivieren (allerdings ist das dann die komplette Fenstertitelzeile).

    Zusammengefasst: Timonize und PC-Notizz lassen sich nicht aktivieren (also mit WinActivate in den Fensterstatus normal setzen), wenn sie minimiert sind. Und „ISN Autoit Studio“ kann ich nicht über ein Autoit-Script aktivieren, wenn ein Projekt geöffnet wurde.

    Wie aktiviert Ihr Fenster, die sich auf normalem Wege nicht aktivieren lassen?

    Viele Grüße und vielen Dank :)
    AutoMit

    11 Mal editiert, zuletzt von AutoMit (26. Februar 2016 um 00:14)

    • Offizieller Beitrag

    Zu deinem Problem mit ISN-Autoit:
    Per WinActivate("ISN AutoIt Studio") wird nicht das Editorfenster , sondern der Ladebildschirm aktiviert.
    Da dieses Fenster aber auf @SW_HIDE gesetzt ist, kann das nicht funtionieren.
    Kannst du selber mal testen indem du WinSetState("ISN AutoIt Studio", "", @SW_SHOW) ausführst, schwubs schon das Ladefenster sichtbar.
    Um zukünftige Fehler dieser Art gleich auszuschliessen, einfach mal ConsoleWrite(WinGetHandle("ISN AutoIt Studio") & @CRLF) ausführen und die Ausgabe mit Autoit Window Info vergleichen.
    Dabei fällt sofort ins Auge, das die Handles der Fenster nicht identisch sind.


    Zitat von AutoMit

    Versuche ich den Fensterstatus mit WinSetState zu setzen, so lassen sich die Fenster danach nicht mehr per Mausklick in der Titelzeile (_) minimieren - also keine Lösung.

    Soll heissen was? Wie hast du den Befehl aufgerufen? Mit welchen Parametern... nur nicht an Infos geizen X/

  • Ah - das ist ein interessanter Tip zu „ISN Autoit Studio“ - vielen Dank !


    Zu PC-Notizz und Timonize:

    PC-Notizz - normales Fenster = WinGetState= 15

    ... ich vermute ...
    ;~ 1 = Fenster existiert.
    ;~ 2 = Fenster ist sichtbar.
    ;~ 4 = Fenster ist freigegeben.
    ;~ 8 = Fenster ist aktiv.

    PC-Notizz - minimiertes Fenster = WinGetState= 13

    ... ich vermute ...
    ;~ 1 = Fenster existiert.
    ;~ 4 = Fenster ist freigegeben.
    ;~ 8 = Fenster ist aktiv.


    gesetzt habe ich den Status dann mit

    WinSetState ($Fenster_aktuell, "", @SW_SHOW)

    Damit gelingt es mir zwar, das Fenster anzuzeigen, aber ich kann es nicht mehr per Mausklick minimieren.

    probiert habe ich auch

    @SW_SHOW = Zeigt ein vorher verstecktes Fenster.
    @SW_RESTORE = Macht eine Fensterminimierung oder -maximierung rückgängig.
    @SW_ENABLE = Aktiviert ein Fenster.

    Bei keinem gelang es mir danach das so aktivierte Fenster per Mausklick wieder zu minimieren.

    Das geschriebene bezieht sich ausschließlich auf die Programme Timonize und PC-Notizz.

    PS:

    Eine Minimierung per @SW_MINIMIZE führt bei diesen Programmen dazu, dass das Fenster nicht wirklich minimiert, sondern als verkleinertes Fenster unten links erscheint. Aber das nur am Rande, weil das Minimieren ohne WinSetState sonst funktioniert.

    Ja - was tun?

    3 Mal editiert, zuletzt von AutoMit (25. Februar 2016 um 21:51)

  • Nach welchem winapi kann ich Ausschau halten, wenn ich das als alternativen Befehl nutzen möchte?

    setzt anschließend ein Focus auf ein handle im Fenster

    Wenn ich manuell ins Fenster klicke, hat das den gleichen Effekt? Wenn ja - das geht nicht.

    Egal, was ich von WinSetState genommen habe - alles sorgt dafür, dass ich das Fenster per Mausklick nicht mehr minimieren kann (bis auf @SW_HIDE und manuelles aktivieren).

    Als Notlösung hätte ich noch folgende Idee: die Startleiste wird standardmäßig ausgeblendet (Desktopmodus - Win 8).

    Welches ist der beste Weg, um die Startleiste temporär einzublenden, um dann auf das Icon von dem Programm zu klicken? Per Autoit Info konnte ich keine Info über das Icon von PC-Notizz auf der Startleiste auslesen.

    Einmal editiert, zuletzt von AutoMit (25. Februar 2016 um 23:44)