hughman 发表于 2010-5-20 12:47:41

为什么我用AHK调用skincrafter换不了皮肤呢?

根据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)
        }
}

guland 发表于 2010-5-20 20:10:08

回复 1# hughman


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



                                                   :face (31):

hughman 发表于 2010-5-21 10:41:16

我知道,au3、ahk其实差不都,很多人两个都玩过
我的函数是从au3改过来的,所以随便在这里问问,谁能帮我看看问题出在哪里
我查看了所有dllcall的errorlevel,都提示成功

kn007 发表于 2010-6-4 10:24:20

对AHK没研究

hughman 发表于 2010-7-4 11:52:01

我换成Unicode版的就可以了,奇怪了,sc的字符串参数类型都是LPCTSTR,应该同时支持ansi和Unicode的啊
页: [1]
查看完整版本: 为什么我用AHK调用skincrafter换不了皮肤呢?