Hi,
Erstellen von *.bmp Dateien mit Inhalt der Zahlen 1-20 im Format 32x32x32Bit
Spoiler anzeigen
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
;Opt('MustDeclareVars', 1)
Local $hBitmap, $hClone, $hImage, $hgui, $label, $hWnd, $hgraphic
$hgui = GUICreate("Icon", 50, 50, 1, 1)
GUISetState(@SW_SHOW)
$label = GUICtrlCreateLabel(" ", 1, 1, 50, 50)
GUICtrlSetFont(-1, 20, 800, 0, "MS Arial")
$hWnd = WinGetHandle("Icon")
_GDIPlus_Startup()
$hgraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
For $i = 1 To 20
GUICtrlSetData($label, $i)
Sleep(100)
$hBitmap = _ScreenCapture_Capture("", 5, 25, 37, 57)
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)
_GDIPlus_GraphicsDrawImage($hgraphic, $hImage, 100, 100)
_GDIPlus_ImageSaveToFile($hImage, @ScriptDir & "\icons\" & $i & ".bmp")
Next
_GDIPlus_ImageDispose($hClone)
_GDIPlus_ImageDispose($hImage)
_WinAPI_DeleteObject($hBitmap)
_GDIPlus_Shutdown()
Exit
[/autoit]
Einfügen der *.bmp in eine *.icl Datei (Container für Icons) mittels des Programms "Sib Icon editor" ergibt:
Darstellung:
Spoiler anzeigen
#include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1) ; Standard Traymenüeinträge (Script pausieren/beenden) werden nicht angezeigt.
[/autoit] [autoit][/autoit] [autoit]$exititem = TrayCreateItem("Beenden")
[/autoit] [autoit][/autoit] [autoit]TraySetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]For $num = 1 To 20
$start = TimerInit()
$diff=0
while $diff < 500
$diff = TimerDiff($start)
$msg = TrayGetMsg()
If $msg = $exititem Then Exit
wend
ToolTip("#icon=" & $num)
TraySetIcon("testicons.icl", $num)
Next
WEnd
Exit
[/autoit]Auf diese Art und Weise lassen sich auch sehr einfach "bewegte" Icons erstellen.
ciao
Andy