修改War3分辨率的小程序
War3的分辨率配置是写在注册表中的,注册表项是:
HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III\Video
中的resheight和reswidth这两个DWORD类型的值中。
例如War3的分辨率为800x600,则这两个值如下图所示:
这个小程序的实现思路是:
- 获取系统当前的分辨率
- 获取War3原来的分辨率(不是必须的)
- 修改注册表中的reswidth和resheight
获取系统当前分辨率
这个直接调用API就可以了,废话少说上代码:
typedef struct resolution_def {int width;int height; } RESOLUTION, * PRESOLUTION;void GetSysResolution(PRESOLUTION res) {res->width = GetSystemMetrics(SM_CXSCREEN);res->height = GetSystemMetrics(SM_CYSCREEN); }
获取War3原来的分辨率
// 读取注册表指定项的值(此项的类型是DWORD) static DWORD RegGetValueDword(HKEY hkey, LPCTSTR lpSubKey, LPCTSTR lpValue, DWORD dwDefValue) {DWORD dwValue;DWORD dwSize;LONG lRet;dwSize = sizeof(dwValue);lRet = RegGetValue(hkey, lpSubKey, lpValue, RRF_RT_DWORD, NULL, &dwValue, &dwSize);if (lRet != ERROR_SUCCESS) {return dwDefValue;}return dwValue; }
此函数共有四个参数,前三个参数与RegGetValue的前三个参数相同,
RegGetValue的详细说明,请参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms724868(v=vs.85).aspx
最后一个参数dwDefValue是一个默认值,当读取注册表发生错误时,返回这个默认值。
#define WAR_VIDEO "Software\\Blizzard Entertainment\\Warcraft III\\Video"void GetWarResolution(PRESOLUTION res) {res->width = RegGetValueDword(HKEY_CURRENT_USER, TEXT(WAR_VIDEO), TEXT("reswidth"), 0);res->height = RegGetValueDword(HKEY_CURRENT_USER, TEXT(WAR_VIDEO), TEXT("resheight"), 0); }
上面的代码就是具体的调用。
修改注册表
static bool RegSetValueDword(HKEY hkey, LPCTSTR lpSubKey, LPCTSTR lpValue, DWORD dwValue) {HKEY hSubKey;LONG lRet;lRet = RegOpenKeyEx(hkey, lpSubKey, 0, KEY_SET_VALUE, &hSubKey);if (lRet != ERROR_SUCCESS) {return FALSE;}lRet = RegSetValueEx(hSubKey, lpValue, 0, REG_DWORD, (PBYTE)&dwValue, sizeof(dwValue));if (lRet != ERROR_SUCCESS) {RegCloseKey(hSubKey);return FALSE;}RegCloseKey(hSubKey);return TRUE; }
这个函数是对API的一个简单封装,完成的功能就是打开键,修改项的值,关闭键。
RegOpenKeyEx的详细说明,请参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897(v=vs.85).aspx
RegSetValueEx的详细说明,请参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms724923(v=vs.85).aspx
调用的代码如下:
bool SetWarResolution(const PRESOLUTION res) {bool bOk;bOk = RegSetValueDword(HKEY_CURRENT_USER, TEXT(WAR_VIDEO), TEXT("reswidth"), res->width);if(!bOk) return FALSE;bOk = RegSetValueDword(HKEY_CURRENT_USER, TEXT(WAR_VIDEO), TEXT("resheight"), res->height);return bOk; }
主要的代码就这些了,应该没有什么难以理解的地方。
转载于:https://www.cnblogs.com/wang286217157/archive/2013/01/28/2880262.html
修改War3分辨率的小程序相关推荐
- 修改已经上线的小程序名称
需求:修改已经上线的小程序的名称 ps: 修改名称的费用为300RMB,参考链接 https://developers.weixin.qq.com/ 解决办法: 1.登录[微信公众平台] https: ...
- 微信小程序:装B神器P图修改微信流量主小程序源码下载趣味恶搞图制作免服务器域名
今天给大家带来的这一款小程序是装逼生成,趣味制图工具 该小程序免服务器和域名,低成本运营 内容丰富,搭建简单,而且更逼真哟 内涵N种模板制作,另外还可以设置推荐小程序更好的互引 简单说几个模板吧 红包 ...
- 改变屏幕分辨率的小程序
文章目录 前言 一.调用原理 二.使用步骤 1.导入代码 2.小程序效果 总结 前言 现在的分辨率普遍较大,而老的程序很多需要较小的分辨率.因为大部分的老程序都还在指定的工作岗位上,所以做了一个分辨率 ...
- wxml修改样式_微信小程序 动态绑定事件并实现事件修改样式
微信小程序 动态绑定事件并实现事件修改样式 实例代码 wxml {{item.name}} js var reportTypeList = [ { name: "日报1", id: ...
- 微信会员卡html修改样式模板,微信小程序 JS动态修改样式的实现代码
微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...
- 修改源码实现小程序UI库iview weapp的modal组件自定义宽高
记一下小程序端UI库iview weapp的modal模态窗自定义样式修改 因为项目需要在模态窗中显示内容,小程序端的iview没有类似popup这种的弹出框,所以就选择了modal对话框来承载弹出内 ...
- ios11修改微信步数_小程序同步微信步数
文章正文 小程序获取微信运动步数,咱们看文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeR ...
- wxml修改样式_微信小程序wxml和wxss样式
对于css不熟悉的Android程序员来说,开发微信小程序面临的一个比较困难的问题就是界面的排版了.微信小程序的排版就跟wxml和wxss有关了,它们两者相当于android的布局文件,其中wxml指 ...
- 修改uniapp后微信小程序提示appid更新失败
背景:使用vscode创建uniapp项目,在微信开发者工具运行提示APPID更新失败 解决:在生成的uniapp目录下有一个名为mainfest.json的文件,内部集成各类项目运行模式的配置,用于 ...
最新文章
- GSM协议编号及其内容
- 利用XtraBackup做mysql不停机重做主从复制
- 数据库面试题【十六、优化长难的查询语句】
- 【CKFinder】解决上传中文名文件乱码和文件重命名的问题
- python 死循环程序能占满cpu吗_运行tensorflow python程序,限制对GPU和CPU的占用操作...
- matlab回归分析sst_R语言 | 回归分析(一)
- Struts1.2+Spring2.5+Hibernate3.2框架搭建(十三)
- 人生不值得,我在用python.1_关于python
- 没有必要学完oldboy课程再找工作,现在就可以试试
- linux 脚本 if then,shell学习之if-then语法
- java graphics dispose_Graphics.Dispose 方法 (System.Drawing) | Microsoft Docs
- Android百分比布局支持和垂直TextView
- 选择排序是外面循环的array[i]与内循环的array[j]比较。冒泡排序是内循环的相邻两个值做比较修改...
- Js-Alert弹出框几种样式(一级)
- 微软雅黑字体的设计理念
- ddos防火墙的作用和部署
- 利用计算机来对指纹,指纹识别系统(文献综述).doc
- 我今天给来学习的学员试讲的课程笔记-2019-04-20
- 关于chm电子书无法显示网页的解决方
- 改版后的CSDN如何更换皮肤