乐易论坛 发表于 2025-1-3 18:51:28

[模块源码]火山视窗内存加载64位皮肤模块源码

本帖最后由 乐易论坛 于 2025-1-4 13:08 编辑

从这里知道的网站
分享一个支持火山视窗64位的皮肤库
https://bbs.voldp.com/thread-23708-1-1.html
(出处: 递归火山软件开发平台)

原帖 火山视窗64位皮肤模块源码
https://www.leybc.cn/thread-345-1-1.html
(出处: 火山编程教程培训交流论坛-乐易网络)

演示效果 也6款皮肤





采用内存加载的方式 不释放DLL
内存加载的代码开源 https://bbs.voldp.com/thread-23681-1-1.html
代码开源
<火山程序 类型 = "通常" 版本 = 1 />

类 类_皮肤X64 <公开 注释 = "一件换肤,目前支持的比较少,采用的是内存加载的方式" 折叠 @输出名 = "L_SkinX64" @视窗.需求目标平台 = @"64位平台">
{
    变量 m_001 <类型 = 字节集类 @输出名 = "m_001" @视窗.值文件 = "L_SkinX64\\001.dll">
    变量 m_002 <类型 = 字节集类 @输出名 = "m_002" @视窗.值文件 = "L_SkinX64\\002.dll">
    变量 m_003 <类型 = 字节集类 @输出名 = "m_003" @视窗.值文件 = "L_SkinX64\\003.dll">
    变量 m_009 <类型 = 字节集类 @输出名 = "m_009" @视窗.值文件 = "L_SkinX64\\009.dll">
    变量 m_011 <类型 = 字节集类 @输出名 = "m_011" @视窗.值文件 = "L_SkinX64\\011.dll">
    变量 m_012 <类型 = 字节集类 @输出名 = "m_021" @视窗.值文件 = "L_SkinX64\\012.dll">
    变量 m_SkinLoader <类型 = 类_PeLoader @输出名 = "m_SkinLoader">

    方法 加载皮肤 <公开 类型 = 文本型 注释 = "加载皮肤进行初始化,窗口打开之前调用效果最好" 返回值注释 = "执行成功返回空 失败返回错误文本" @输出名 = "SetSkin">
    参数 参_编号 <类型 = 整数 注释 = "编号从0~5" @输出名 = "iIndex" @默认值 = 0>
    {
      变量 局_皮肤文件 <类型 = 字节集类 @输出名 = "bSkinData">
      分支判断 (参_编号)
      {
            分支 (1)
            {
                局_皮肤文件 = m_002
            }
            分支 (2)
            {
                局_皮肤文件 = m_003
            }
            分支 (3)
            {
                局_皮肤文件 = m_009
            }
            分支 (4)
            {
                局_皮肤文件 = m_011
            }
            分支 (5)
            {
                局_皮肤文件 = m_012
            }
            默认分支 ()
            {
                局_皮肤文件 = m_001
            }
      }
      如果 (m_SkinLoader.加载 (局_皮肤文件) == 假)
      {
            返回 ("[加载皮肤]:加载皮肤DLL失败")
      }
      变量 JD_Load <类型 = 变整数>
      JD_Load = m_SkinLoader.取函数 ("JD_Load")
      如果 (JD_Load <= 0)
      {
            m_SkinLoader.释放 ()
            返回 ("[加载皮肤]:取函数地址失败")
      }
      程序_Call_无参数 (JD_Load)
      返回 ("")
    }

    方法 是否禁用皮肤 <公开 类型 = 文本型 注释 = "开启或停用皮肤效果" 返回值注释 = "执行成功返回空 失败返回错误文本" @输出名 = "isSetSkin">
    参数 参_是否开启 <类型 = 逻辑型 注释 = "真=开启,假=关闭" @默认值 = 真 @输出名 = "BSkinShow">
    {
      变量 JD_Skin <类型 = 变整数>
      JD_Skin = m_SkinLoader.取函数 ("JD_Skin")
      如果 (JD_Skin <= 0)
      {
            返回 ("[是否禁用皮肤]:取函数地址失败")
      }
      程序_Call (JD_Skin, 参_是否开启) //<span style="background-color: rgb(255, 255, 255);">程序Call 就是调用静态方法</span>
      返回 ("")

    }

    方法 类_清理
    {
      m_SkinLoader.释放 ()
    }

    #
    #
}


DLL压缩包下载 已经过UPX加壳**** Hidden Message *****



乐易论坛 发表于 2025-1-4 11:05:54

程序Call 就是调用静态方法

兵三进一 发表于 2025-1-4 11:33:53

好好学习,天天向上!

alanwoo 发表于 2025-1-4 17:38:17

学习学习……

先生 发表于 2025-1-4 18:11:16

能用ski皮肤文件吗

网络注册会员 发表于 2025-1-4 20:35:35

支持支持支持

adm 发表于 2025-1-4 23:14:50


好好学习,天天向上!

正版商业用户 发表于 2025-1-5 08:38:17

这个皮肤库早就过时了,XP时代的风格,现在看起来就像看文物一样

书写时光 发表于 2025-1-5 11:11:18

学习学习,感谢分享

li327065266kun 发表于 2025-1-5 19:17:38

:噜阿噜牛逼啊,咋搞的X64皮肤啊???
页: [1] 2 3 4
查看完整版本: [模块源码]火山视窗内存加载64位皮肤模块源码