Window Informationen per Drag & Drop auslesen

  • Hallo,

    ihr kennt doch alle das "Autoit Window Info"-tool. Ich suche nach einer Möglichkeit eine Extreeem abgespeckte version davon zu erstellen. Bzw brauche ich eine Funktion daraus für ein eigenes Script.
    Ich möchte gerne sowas wie dieses "Fadenkreuz" in ein Fenster ziehen und zurück möchte ich dann gerne den Titel und die Class haben. Also die "Basic Window Info".
    Ist das möglich?
    Leider hab ich keinen Ansatz ich ich das lösen könnte.

    Danke schonmal.

  • Du kannst einfach per WinList und WinGetPos + WinGetSize die Koordinaten mit denen der Maus vergleichen und somit sagen über weplchem Fenster sich die Maus befindet. Danach kannst du über das Handle den Titel etc. auslesen. Für Class müsstest du mal Google und die Forensuche quälen, oder abwarten. Das weiß ich nämlich nicht.

  • Hey,
    danke für deinen Lösungsansatz. Aber ich habe es jetzt erstmal etwas anders gemacht.
    Und zwar so:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 161, 97, 192, 124)
    $Button1 = GUICtrlCreateButton("Button1", 16, 56, 123, 25)
    $Input1 = GUICtrlCreateInput("Input1", 16, 24, 121, 21)
    $Label1 = GUICtrlCreateLabel("FensterTitel", 48, 8, 59, 17)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $User32DLL = DllOpen("user32.dll")

    [/autoit] [autoit][/autoit] [autoit]

    Do
    Sleep(20)
    Until _IsPressed(0x01, $User32DLL)
    DllClose($User32DLL)
    GUICtrlSetData($Input1,WinGetTitle("[active]"))
    EndSwitch
    WEnd

    [/autoit]

    Falls jemand eine bessere Lösung weiß, immer raus damit.