关于AU3加载皮肤的问题
偶尔见到一个仁兄的AU3 GUI界面加载了挺漂亮的皮肤,我问他怎么做的,他只是敷衍的告诉我说到下面的网站看看就明白了http://www.skincrafter.com/skingal.php#
可惜我英文水平有限,没看明白,而且找到的提供的实例都是以C++、C#等语言为实例的,不知道AU3的怎么弄
在这个网站下载的皮肤外观为skf为后缀,哪位老兄能赐教一下用AU3怎么加载这种皮肤啊
[ 本帖最后由 skyfree 于 2008-5-17 16:44 编辑 ] 我也不懂,以前在有个源代码里看到有部分,给你看看是否有帮助(原文件已经找不到,大概是这个样子)。
加载皮肤:
FileInstall("style.skf", @TempDir& "\style.skf",1)
退出的时候加入删除皮肤代码:
FileDelete ( @TempDir&"\style.skf" ) ……
FileInstall只是把皮肤从AU3程序中解包出来,并不是加载……
帮忙找找怎么加载,谢谢老兄了!:face (36): 楼主是自由天空么,哈哈??
应该是这样用的:
$mainwindow = GUICreate("这里是主题", 600, 500)
_SkinGUI("SkinCrafterDll.dll", "Vista.skf", $mainwindow)
Func _SkinGUI($SkincrafterDll, $SkincrafterSkin, $Handle)
$Dll = DllOpen($SkincrafterDll)
DllCall($Dll, "int:cdecl", "InitLicenKeys", "wstr", "1", "wstr", "", "wstr", "1@1.com", "wstr", "1")
DllCall($Dll, "int:cdecl", "InitDecoration", "int", 1)
DllCall($Dll, "int:cdecl", "LoadSkinFromFile", "wstr", $SkincrafterSkin)
DllCall($Dll, "int:cdecl", "DecorateAs", "int", $Handle, "int", 25)
DllCall($Dll, "int:cdecl", "ApplySkin")
EndFunc
需要SkinCrafterDll.dll 和这网上下的SKF皮肤文件 嘿嘿,正是在下。谢谢您的回答,方便的话能把SkinCrafterDll.dll也上传一下么?或直接传给我也行,我QQ:165718402 我下过两个的, 两个不一样大,其中一个,能正常使用,但在程序退出时报告内存不能读, 当时就一个VISTA皮肤文件, 不确定是皮肤问题还是这文件错误来
上传的这个测试了几个皮肤都可以正常使用 不过测试时, 在SCITE里F5, 正常显示, 退出程序就报AUTOIT3.EXE错误,但是编译后运行没问题, 一切OK
那个皮肤网站很不错,真想把所有皮肤都给打包下来...
记的你论坛里发的工具都是VISTA皮肤的, 还以为你使用VISTA皮肤呢,看来是你系统本就是VISTA ?? ……
我的系统是VISTA,所以截图就都是那样的了……
谢谢你了! 不知你上边的DLL是不是一区修正的。原论坛发的是破解有问题的。
最新没问题的,应该是一区兄弟修正的。
AU3调用应该是这样,退出也要函数处理的。这样不会出错了。
;
;
Func Quit()
GUISetState(@SW_HIDE)
DllCall($dll, "int:cdecl", "DeInitDecoration")
DllCall($dll, "int:cdecl", "RemoveSkin")
DllClose($dll)
;DirRemove(@AppDataDir&"\skin",1)
Exit
EndFunc
Func _SkinGUI($SkincrafterDll, $SkincrafterSkin, $Handle)
$Dll = DllOpen($SkincrafterDll)
DllCall($Dll, "int:cdecl", "InitLicenKeys", "wstr", "1", "wstr", "", "wstr", "1@1.com", "wstr", "1")
DllCall($Dll, "int:cdecl", "InitDecoration", "int", 1)
DllCall($Dll, "int:cdecl", "LoadSkinFromFile", "wstr", $SkincrafterSkin)
DllCall($Dll, "int:cdecl", "DecorateAs", "int", $Handle, "int", 25)
DllCall($Dll, "int:cdecl", "ApplySkin")
EndFunc ;==_SkinGUI
;
;
谢谢补充! $Dll是不是要Global一下? 哦, 退出那段, 确实忘了, 哈哈
恩,我发的那个版本好象是2.7的,刚才找了几个破解的, 有2.8 和3.0的, 可惜都是唬人的, ...全是DEMO 嗯。加上这句就好Global $Dll
关于2。8的最新破解版,我发到中文资料区吧。
不过可能需要金钱下载。为了论坛发展需要。 哈哈, 我去等着下去
[ 本帖最后由 llztt 于 2008-5-17 17:26 编辑 ] 楼上的兄弟原来是在这里 瞄到的呀
:face (33):
原来是SKY老大问的问题呀
页:
[1]
2