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?
Icon von einem Offenen Fenster bekommen
-
- [ offen ]
-
Jam00 -
6. April 2009 um 10:32 -
Geschlossen -
Erledigt
-
-
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
-
Ja, aber wie finde ich die EXE heraus? Und machmal hat die EXE ja auch ein anderes Icon als das Fesnter z.B. icq nachrichtenfenster
-
Manchmal funktioniert das:
Spoiler anzeigen
[autoit]#include<Constants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<StaticConstants.au3>
#include<WindowsConstants.au3>
#include<SendMessage.au3>
#include<WinAPI.au3>
Global Const $ICON_BIG = 1
Global Const $STM_SETIMAGE = 0x172Opt("WinTitleMatchMode",2) ; irgendwo und
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Fenster = WinGetHandle("Firefox")GUICreate("IconDemo")
[/autoit] [autoit][/autoit] [autoit]
$IconCtrl = GUICtrlCreateIcon("",0,10,10,32,32)
$IconCtrlhWnd = GUICtrlGetHandle($IconCtrl)$hIconOrig = _SendMessage($Fenster,$WM_GETICON, $ICON_BIG)
[/autoit] [autoit][/autoit] [autoit]
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")
EndIfGUISetState()
[/autoit] [autoit][/autoit] [autoit]While GUIGetMsg()<>-3
[/autoit]
WEnd -
THX
Aber warum geht das nur machmal?
EDIT: Also ich habe 9 Fenster offen und mit 4 Fenster functioniert es
-
Scheint wohl schwer zu sein was?