找回密码
 加入
搜索
查看: 5825|回复: 4

[交流] 为什么我用AHK调用skincrafter换不了皮肤呢?

  [复制链接]
发表于 2010-5-20 12:47:41 | 显示全部楼层 |阅读模式
根据autoit的代码改写,dll是2.7的,用autoit完全正常
哪位大侠帮忙看一下,谢谢了
SkinCrafter_AttachSkin(fileSkinDll, fileSkin, hWnd)
{
        global $hModule_SkinDll
        If !$hModule_SkinDll
                $hModule_SkinDll := DllCall("LoadLibrary", Str, fileSkinDll)
        
        ; 授权,reg_name, company, email, licenkey
        DllCall(fileSkinDll . "\InitLicenKeys", Str, "1", Str, "", Str, "1@1.com",  Str, "1", "Cdecl Int")
        ; 初始皮肤引擎: 模式1 - 换肤所有控件,0 - 部分换肤
        DllCall(fileSkinDll . "\InitDecoration", Int, 1, "Cdecl Int")        
        DllCall(fileSkinDll . "\LoadSkinFromFile", Str, fileSkin, "Cdecl Int")
        ; 控件皮肤映射为某一标准类型, 25 - Dialog Background
        DllCall(fileSkinDll . "\DecorateAs", Int, hWnd, Int, 25, "Cdecl Int")
        DllCall(fileSkinDll . "\ApplySkin")
}

SkinCrafter_DetachSkin(fileSkinDll)
{
        global $hModule_SkinDll
        
        If $hModule_SkinDll
        {
                DllCall(fileSkinDll . "\DeInitDecoration", "Cdecl Int")
                DllCall(fileSkinDll . "\RemoveSkin", "Cdecl Int")
                DllCall("FreeLibrary", "UInt", $hModule_SkinDll)
        }
}
发表于 2010-5-20 20:10:08 | 显示全部楼层
回复 1# hughman


    这里是autoit论坛,不是AHK论坛,你好像发错地方了...............



                                                     
 楼主| 发表于 2010-5-21 10:41:16 | 显示全部楼层
我知道,au3、ahk其实差不都,很多人两个都玩过
我的函数是从au3改过来的,所以随便在这里问问,谁能帮我看看问题出在哪里
我查看了所有dllcall的errorlevel,都提示成功
发表于 2010-6-4 10:24:20 | 显示全部楼层
对AHK没研究
 楼主| 发表于 2010-7-4 11:52:01 | 显示全部楼层
我换成Unicode版的就可以了,奇怪了,sc的字符串参数类型都是LPCTSTR,应该同时支持ansi和Unicode的啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 11:47 , Processed in 0.071524 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表