当前位置: 主页 > 百科 > 计算机编程 > 易语言源码 >
-12 Comments

wz_强行兼容高DPI源代码

发布于:2016-07-04  |   作者:http://www.zxjsq.net  |   已聚集:人围观

.版本 2

.支持库 EThread


.程序集 wz_强行兼容高DPI

.程序集变量 _临界区1, 整数型

.程序集变量 _临界区2, 整数型

.程序集变量 _hFont, 整数型

.程序集变量 _hook1, inline_hook

.程序集变量 _hook2, inline_hook


.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


开启高DPI兼容 ()

_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码

返回 (0)  ' 可以根据您的需要返回任意数值


.子程序 _临时子程序


' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。



.子程序 开启高DPI兼容, , , 请在程序入口处第一行调用!必须在窗口显示前调用!

.局部变量 是否已调用, 逻辑型, 静态


.如果真 (是否已调用)

    返回 ()

.如果真结束

是否已调用 = 真

设置全局默认字体 ()

SetProcessDPIAware ()


.子程序 SetProcessDPIAware

.局部变量 hdll, 整数型

.局部变量 proc, 整数型


hdll = LoadLibrary (“user32.dll”)

proc = GetProcAddress (hdll, “SetProcessDPIAware”)

.如果真 (proc ≠ 0)

    Call (proc)

.如果真结束

FreeLibrary (hdll)


.子程序 Call, 整数型, , by:易语言我吃了

.参数 子程序地址

.参数 参数1, , 可空

.参数 参数2, , 可空

.参数 参数3, , 可空

.参数 参数4, , 可空

.参数 参数5, , 可空

.参数 参数6, , 可空

.参数 参数7, , 可空

.参数 参数8, , 可空

.参数 参数9, , 可空

.参数 参数10, , 可空

.参数 参数11, , 可空

.参数 参数12, , 可空

.参数 参数13, , 可空

.参数 参数14, , 可空

.参数 参数15, , 可空


置入代码 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })

返回 (0)


.子程序 设置全局默认字体


_临界区1 = 创建进入许可证 ()

_临界区2 = 创建进入许可证 ()

_hFont = CreateFont (-12, 0, 0, 0, 0, 0, 0, 0, #DEFAULT_CHARSET, 0, 0, 0, 0, “宋体”)

_hook1.安装 (操作_取函数入口 (“gdi32.dll”, “GetStockObject”), 到整数 (&_HookGetStockObject))

_hook2.安装 (操作_取函数入口 (“gdi32.dll”, “DeleteObject”), 到整数 (&_HookDeleteObject))


.子程序 _HookGetStockObject, 整数型

.参数 nIndex, 整数型

.局部变量 nRet, 整数型


进入许可区 (_临界区1)

.如果 (nIndex = #DEFAULT_GUI_FONT)

    nRet = _hFont

.否则

    _hook1.停止 ()

    nRet = GetStockObject (nIndex)

    _hook1.启动 ()

.如果结束

退出许可区 (_临界区1)

返回 (nRet)


.子程序 _HookDeleteObject, 整数型

.参数 h, 整数型

.局部变量 nRet, 整数型


进入许可区 (_临界区2)

.如果 (h = _hFont)

    nRet = 1

.否则

    _hook2.停止 ()

    nRet = DeleteObject (h)

    _hook2.启动 ()

.如果结束

退出许可区 (_临界区2)

返回 (nRet)

标签:                   喜欢:收藏