Icon von einem Offenen Fenster bekommen

  • Hallo, ich wollte mal fragen wie ich das Icon eines Offenen Fensters in AutoIt bekommen kann? Windows mach das doch auch z.B. in der Taskleiste oder beil Alt+Tab, geht das auch in AutoIt?

    mfg. Jam00

  • Auf direktem Weg seh ich da keine Chancen, aber es müsste doch gehen die exe, die zu dem Fenter gehört herauszufinden. Dann hast du auch das ICON

  • Manchmal funktioniert das:

    Spoiler anzeigen
    [autoit]

    #include<Constants.au3>
    #include<StaticConstants.au3>
    #include<WindowsConstants.au3>
    #include<SendMessage.au3>
    #include<WinAPI.au3>
    Global Const $ICON_BIG = 1
    Global Const $STM_SETIMAGE = 0x172

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

    Opt("WinTitleMatchMode",2) ; irgendwo und
    $Fenster = WinGetHandle("Firefox")

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

    GUICreate("IconDemo")
    $IconCtrl = GUICtrlCreateIcon("",0,10,10,32,32)
    $IconCtrlhWnd = GUICtrlGetHandle($IconCtrl)

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

    $hIconOrig = _SendMessage($Fenster,$WM_GETICON, $ICON_BIG)
    If $hIconOrig Then
    $hIcon = _WinAPI_CopyIcon($hIconOrig)

    $OldIcon = _SendMessage($IconCtrlhWnd, $STM_SETIMAGE, $IMAGE_ICON, $hIcon)
    If $OldIcon Then
    _WinAPI_DestroyIcon($OldIcon)
    _WinAPI_DeleteObject($OldIcon)
    EndIf
    Else
    MsgBox(0, '', "Konnte Icon nicht auslesen")
    EndIf

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

    GUISetState()

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

    While GUIGetMsg()<>-3
    WEnd

    [/autoit]