Frage zu Child Windows bzw. Owned Windows

  • Hallo :)

    In der Hilfe bin ich über Parent bzw. Child Windows und über Owner bzw. owned Windows gestolpert.
    Etwa in der Beschreibung zu _GUITooltip_Create finden sich beide Bezeichnungen. Ich verstehe den Unterschied hier nicht.
    Parent / Child kenne ich als nützlichen Parameter von GUICreate.
    Wo ist bei einem Tooltip der Unterschied zwischen Parent und dem Fenster zu dem dem das Control gehört?

    Viele Grüße aus der Hundehütte.

  • Wo ist bei einem Tooltip der Unterschied zwischen Parent und dem Fenster zu dem dem das Control gehört?

    Bei einem ToolTip() gibt es keinen... denn dazu müsste die interne AutoIt-Funktion ein Window-Handle als Parameter anbieten, was aber nicht der Fall ist, weil ein eigenes Window kreiert wird.

    Wäre es anders, würde dies hier nicht funktionieren... tut es aber!

    AutoIt
    ToolTip('Huhu...')


    Edit: Lese jetzt erst, dass es hier um _GUITooltip geht...

    Bei dem _GUITooltip kannst du hingegen ein Window-handle angeben, auf welchem dieser angezeigt werden soll. Hier denke ich, verhält sich das etwa so...
    Wurden die GUITooltips vom Parent-Window erzeugt und wird dieses geschlossen, sind die Tips für das Owner-Window nicht mehr verfügbar. Wurden die GUITooltips vom Owner-Window erzeugt und wird dieses geschlossen, sind sie für das Parent-Window nicht mehr verfügbar.

    Wenn du ein Scrript schreibst und eine GUI kreiert, dann ist diese GUI dein "Owner-Window". Dein Prozess ist dann also analog dazu dein "Owner-Prozess" der von einem anderen Prozess gestartet wurde, dem "Parent-Prozess", von dem wir uns neben dem "Proccess-Handle", der "PID" und zig anderen Infos, auch dessen "Window-Handle" besorgen können... und genau dieses Window-Handle ist dann dein "Parent-Window".

    Ich habe dir mal ein kleines Script getippert, dass du auf unterschiedliche Weise starten solltest, da sich dann das "Parent-Window" entsprechend ändert und du es so besser nachvollziehen kannst.
    Z. B.:

    • Starte das Script direkt aus SciTE heraus, ohne es vorher zu kompilieren.
    • Starte das kompilierte Script (also die EXE) mit dem Windows-Explorer
    • Starte das kompilierte Script in der Eingabeaufforderung
    • Starte das kompilierte Script mit einem anderen Script via Run("WinInfo.exe")
    • Kompiliere das andere Script und starte es nochmals damit.

    Dann schließe mal dein Child-Window... dann dein Owner-Window... was in dem Fall das Parent-Window ist... dann umgekehrt...

    WinInfo.au3

    6 Mal editiert, zuletzt von Bitnugger (19. November 2016 um 23:37)