Eigenschaften einer Gui

  • Hallo !

    Ich möchte eine Gui ohne Rahmen ($WS_POPUP) und immer im Vordergrund ($WS_EX_TOPMOST) erstellen. Soweit kein Problem

    [autoit]

    $gui = GUICreate("TestGui", 200, 350, 200, 100, $WS_POPUP, $WS_EX_TOPMOST)

    [/autoit]

    Ich möchte gerne, daß diese Gui immer dann angezeigt wird, wenn ein bestimmtes anderes Fenster aktiv ist. Ist dieses Fenster inaktiv, wir die Gui nicht angezeigt. Soweit auch kein Problem:

    [autoit]

    While 1
    If WinGetTitle("[active]", "") = "xyz" Or WinGetTitle("[active]", "") = "TestGui"Then
    GUISetState(@SW_SHOW, $gui)
    Else
    GUISetState(@SW_HIDE, $gui)
    EndIf
    WEnd

    [/autoit]

    Mein Problem jetzt: wie kann ich trotz der "TestGui" die immer im Vordergrund zu sehen ist in das Fenster schreiben bzw. in dem Fenster arbeiten, bei dessen Aktivität die TestGui gezeigt werden soll ?

    Anders: wenn das Fenster mit dem Titel "xyz" aktiv ist, zeige die Gui "TestGui" (sonst nicht) aber ermögliche Eingaben im Fenster "xyz"

    geht das ? Oder hat jemand eine Idee was ich machen kann, damit sowas geht ?

    Wäre toll wenn mir jemand helfen könnte

    Einmal editiert, zuletzt von nick stamper (21. Juli 2012 um 13:31)

  • Ich kann mich erinnern soetwas vor Jahren schonmal gemacht zu haben.
    Es hatte irgendwas mit dem exStyle zu tun, versuch' z.B. mal

    [autoit]

    $WS_EX_TRANSPARENT

    [/autoit]


    MfG, James

  • ich habs probiert. Mit $WS_EX_TRANSPARENT ändert sich nicht wirklich was. In das Fenster "xyz" kann ich trotzdem nicht schreiben. Oder ich bin zu blöd und hab's falsch angewendet.

  • Es kann auch ein anderer exStyle sein, mein Gedächtnis war damals leider nicht soo gut. :D
    Meine Skripte aus dieser Zeit habe ich leider auch nicht mehr, sonst hätte ich nachgeschaut...

    Ich kann mich nur noch erinnern damals eine Bildschirmlupe mit AutoIt programmiert zu haben, bei der das Fenster automatisch der Maus gefolgt ist und man die darunterliegenden Fenster trotzdem noch benutzen konnte.

  • $WS_EX_TRANSPARENT funktioniert gar nicht. Versteh nicht mal warum !?

    $gui = GUICreate("TestGui", 200, 350, 200, 100, $WS_EX_TRANSPARENT)

    ich hab mir in der Hilfe die beschriebenen Styles durchgelesen. Mein Englisch war sicher mal besser als heute. Ich finde dort keinen Style, der helfen könnte, außer eben vielleicht transparent. Nur der funktioniert bei mir nicht.

  • Suchfunktion: Transparenz bzw. transparenz, da findest Du zahlreiche Bsp. und kannst das nehmen was Du brauchst.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Hallo nick stamper,

    lt. James1337 ist es ein ExStyle du hast aber den Parameter beim normalen Style gesetzt, probier es also einmal so:

    [autoit]

    $gui = GUICreate("TestGui", 200, 350, 200, 100, Default, $WS_EX_TRANSPARENT)

    [/autoit]

    Zu deinen Englischprpblemen: lade dir einfach die ins Deutsche übersetzte Hilfe herunter

    mfg autoBert

  • Hallo autoBert !

    [autoit]

    $gui = GUICreate("TestGui", 200, 350, 200, 100, Default, $WS_EX_TRANSPARENT)

    [/autoit]


    erstens verschwindet dadurch das Rahmenlose, also der Rahmen der TestGui ist jetzt da, weil $WS_POPUP ja fehlt, was meinem Verständnis nach kein EXStyle ist (wenn doch, wie kombiniere ich die beiden dann ?),

    zweitens funktioniert es nicht wirklich in das Fenster, bei dessen Aktivität die TestGui gezeigt wird zu schreiben. Hab nicht rausgekriegt wann es geht und wann nicht. Wenn man etwas probiert, immer wieder reinklickt und versucht zu schreiben, dann funktioniert es irgendwie irgendwann, meißt aber eher nicht, auf jeden Fall nicht so selbstverständlich wie ich es mir vorstelle. Außerdem: in dem Moment, wo man dann plötzlich doch reinschreiben kann verschwindet die TestGui, die ja aber immer im Vordergrund bleiben soll, auch wenn man in das andere Fenster schreibt !


    @ Alina!


    Suchfunktion: Transparenz bzw. transparenz, da findest Du zahlreiche Bsp. und kannst das nehmen was Du brauchst


    Ich such ja nicht nach transparenten Fenstern ! Ich will wenn Fenster x oder y aktiv sind, daß Fenster y (eine Gui) zu sehen und IM VORDERGRUND VOR Fenster x (irgendein Programm) ist. Gleichzeitig soll aber in Fenster x geschrieben werden können.
    Hab nach Transparenz gesucht, aber keine passende Lösung gefunden. Aber vielleicht seh ich den Wald vor lauter Bäumen nicht.

    Kann mir jemand helfen !?

  • erstens verschwindet dadurch das Rahmenlose, also der Rahmen der TestGui ist jetzt da, weil $WS_POPUP ja fehlt,


    war in dem Skriptschnipselvon dir auch nicht:

    $WS_EX_TRANSPARENT funktioniert gar nicht. Versteh nicht mal warum !?

    $gui = GUICreate("TestGui", 200, 350, 200, 100, $WS_EX_TRANSPARENT)


    und hier war der Parameter definitv an der falschen Stelle. Ich hatte damals nur diesen Beitrag gelesen und entsprechend korrigiert. Du musst die GUI mit dem ExStyle $WS_EX_TOPMOST erstellen und zusätlich noch

    [autoit]

    WinSetOnTop

    [/autoit]

    verwenden.

    mfg autoBert


  • war in dem Skriptschnipselvon dir auch nicht

    doch, war es ! Gleich im ersten so kritisierten Schnipsel ! Was ist an den "Schnipseln" falsch ? Es sind NUR zwei und sie verdeutlichen worum es mir geht ! Zum gesamten Code fehlt nur noch ein Include und ein Guisetstate() !

    Trotzdem danke für deine Hilfe !!

    Ich wollte eigentlich grad selbst die Lösung posten, weil ich es mitlerweile selbst herausbekommen hatte, da seh ich du hast des Rätsels Lösung ebenso gepostet: WinSetOnTop ! Ich bin erstaunt, daß keiner der AutoIT-Cracks hier das hinbekommen hat. Wahrscheinlich war es ihnen zu blöd und einfach !?

    Also: dir, AutoBert, vielen Dank ! Es hatte nichts mit Transparenz zu tun. Mit WinSetOnTop kann man bei Aktivierung des relevanten Fenster oder eines eben nicht relevanten Fensters die Gui nach oben setzen (Flag 1) oder eben nicht (Flag 0). Und bei Flag 1 kann trotzdem im anderen, für diesen Flag relevanten Fenster, geschrieben werden.