为AutoHotkey添加DPI Aware支持

多屏环境下,在AutoHotkey中使用与DPI相关操作时,A_ScreenDPI变量只记录了主屏幕的DPI。在使用GetDpiForMonitor等与DPI相关的WinApi函数时,由于AutoHotkey的DPI感知默认为系统级,这些函数无法取得正确值。

实现Per-Monitor DPI Aware支持,首先在程序清单中加入相关信息。使用Resource Hacker.exe工具打开AutoHotkey.exe或脚本编译后生成的exe文件,替换或修改清单文件。

为AutoHotkey添加DPI Aware支持

替换的清单信息

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:v3="urn:schemas-microsoft-com:asm.v3"><assemblyIdentity version="1.1.00.00" name="AutoHotkey" type="win32" /><dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /></dependentAssembly></dependency><compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"><application><supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/><supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/><supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/><supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/><supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/></application></compatibility><v3:application><v3:windowsSettings><dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware><!-- legacy --><dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">permonitorv2,permonitor</dpiAwareness><!-- falls back to pm if pmv2 is not available --></v3:windowsSettings></v3:application><v3:trustInfo><v3:security><v3:requestedPrivileges><v3:requestedExecutionLevel level="asInvoker" uiAccess="false" /></v3:requestedPrivileges></v3:security></v3:trustInfo></assembly> 
为AutoHotkey添加DPI Aware支持

给TA捐赠
共{{data.count}}人
人已捐赠
其他案例

打开qq,自动切换到指定好友或群的聊天界面

2020-7-1 20:32:50

其他教程

Array Sort

2020-8-3 15:28:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索