Ich hab jetzt mal eben ein kleines Script gebaut, um es zu testen.
Code: Select all
#NoEnv
Gui, Main: Add , ListView , x10 y10 w620 h380 vTABELLE gSHOWMENU -LV0x10 +LV0x3 +LV0x1 -LV0x1000 -Multi +AltSubmit +readonly +cFFFFCC +Background3D3F40 Grid , Test1|Test2|Test3
Gui, Main: Show, w640 y400, TEST
Gui, Main: +LastFound
Gui, Main: Default
FOLDER_OPEN := "Ordner öffnen"
Menu, ORDNER, Add , %FOLDER_OPEN% , FOLDER_OPEN
If (A_IsCompiled)
Menu, ORDNER, Icon, %FOLDER_OPEN% , HICON:%HIMG101%
else
Menu, ORDNER, Icon, %FOLDER_OPEN% , gfx_klein\test.ico, 0, 32
Image101 := FI_GetResource("test.png")
HIMG101 := FI_GetImage(Image101)
SetImage(HPIC101, HIMG101)
Gui, Main: Treeview, PLU_BERICHTE
LV_DELETE()
LV_ADD( "", "111", "AAA", "aaa")
LV_ADD( "", "222", "BBB", "bbb")
LV_ADD( "", "333", "CCC", "bbb")
Return
FOLDER_OPEN:
msgbox Klappt
Return
MainGuiClose:
ExitApp
Return
SHOWMENU:
If (A_GuiEvent = "RightClick")
{
Menu,ORDNER, Show
}
Return
SetImage(HWND, HIMG)
{
SendMessage, 0x172, 0, HIMG, , ahk_id %HWND%
Return (ErrorLevel = "FAIL" ? 0 : ErrorLevel)
}
FI_GetResource(ResName)
{
If !(A_IsCompiled)
Return False
If (HRSRC := DllCall("Kernel32.dll\FindResource", "Ptr", 0, "Str", ResName, "Ptr", 10, "UPtr")) && (HRES := DllCall("Kernel32.dll\LoadResource", "Ptr", 0, "Ptr", HRSRC, "UPtr"))
Return {Ptr: DllCall("Kernel32.dll\LockResource", "Ptr", HRES, "UPtr"), Size: DllCall("Kernel32.dll\SizeofResource", "Ptr", 0, "Ptr", HRSRC, "UInt")}
Return False
}
FI_GetImage(ImgRes, ImgType := 0)
{
If !(A_IsCompiled)
Return False
If !IsObject(ImgRes) || (ImgRes.Ptr = "") || (ImgRes.Size = "")
Return False
GlData := DllCall("Kernel32.dll\GlobalAlloc", "UInt", 2, "UPtr", ImgRes.Size, "UPtr")
Data := DllCall("Kernel32.dll\GlobalLock", "Ptr", GlData, "UPtr")
DllCall("Kernel32.dll\RtlMoveMemory", "Ptr", Data, "Ptr", ImgRes.Ptr, "UPtr", ImgRes.Size)
DllCall("Kernel32.dll\GlobalUnlock", "Ptr", GlData )
DllCall( "Ole32.dll\CreateStreamOnHGlobal", "Ptr", GlData, "Int", True, "PtrP", Stream)
GdipHMod := DllCall("Kernel32.dll\LoadLibrary", "Str", "Gdiplus.dll", "UPtr")
VarSetCapacity(SI, 16, 0), NumPut(1, SI, 0, "UChar")
DllCall("Gdiplus.dll\GdiplusStartup", "PtrP", GdipToken, "Ptr", &SI, "Ptr", 0)
DllCall("Gdiplus.dll\GdipCreateBitmapFromStream", "Ptr", Stream, "PtrP", Bitmap)
If (ImgType = 0)
DllCall("Gdiplus.dll\GdipCreateHBITMAPFromBitmap", "Ptr", Bitmap, "PtrP", Image, "UInt", 0)
Else
DllCall("Gdiplus.dll\GdipCreateHICONFromBitmap", "Ptr", Bitmap, "PtrP", Image, "UInt", 0)
DllCall("Gdiplus.dll\GdipDisposeImage", "Ptr", Bitmap )
DllCall("Gdiplus.dll\GdiplusShutdown", "Ptr", GdipToken )
DllCall("Kernel32.dll\FreeLibrary", "Ptr", GdipHMod)
DllCall(NumGet(NumGet(Stream + 0, 0, "UPtr") + (A_PtrSize * 2), 0, "UPtr"), "Ptr", Stream)
DllCall("Kernel32.dll\GlobalFree", "Ptr", GlData, "UPtr")
Return Image
}
FileInstall, gfx_klein\test.png , gfx_klein\test.png
Gucky.