手机
当前位置:查字典教程网 >操作系统 >Windows系列 >如何修改注册表解决windows7闪屏的问题
如何修改注册表解决windows7闪屏的问题
摘要:在Windows7下玩老游戏,会出现花屏的现象。这个现象的原因是Win7的DirectDraw的256色调色板的兼容性问题,据说是默认配置下...

在Windows7下玩老游戏,会出现花屏的现象。

这个现象的原因是Win7的DirectDraw的256色调色板的兼容性问题,据说是默认配置下,程序无法获取调色板锁。

一个简单的解决方法是杀掉explorer进程,估计这样就会停止桌面主题修改调色板。

但是这不是一个一劳永逸的办法。

方法一:

经过在网上搜索,发现有这样一个解决方案。

DirectDraw有一个注册表项,用于开启兼容模式,位于

HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftDirectDrawCompatibility

(Win7 x64)

HKEY_LOCAL_MACHINESOFTWAREMicrosoftDirectDrawCompatibility

(Win7 x86)

在这个注册表项下添加需要启用兼容模式的exe,如:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftDirectDrawCompatibilityStarCraft116]

"Name"="Starcraft.EXE"

"ID"=hex:ca,89,65,49

"Flags"=hex:00,08,00,00

(Win7 x64)

就可以使得对应的程序运行于兼容模式下。

这三个键值中,Name是程序的文件名,Flags是常量,而ID是程序的时间戳。

以星际争霸1.161为例,我们可以使用CFF Explorer打开Starcraft.exe,然后在Nt Headers-File Header中找到TimeDateStamp一项,发现其值为496589CA。

将该整数倒过来写作低字节优先的形式(little-endian),就是ca,89,65,49,这就是注册表中的ID值。

网上的有解决方案声称HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftDirectDrawMostRecentApplication下的ID记录的就是上一次运行的游戏的时间戳。

但是我验证的时候发现不一致。

通过此方法,星际争霸已经可以在我的机器上正常运行。

此外,还有一种方法是通过Hook掉DirectDraw的函数来完成的,见

http://sol.gfxile.net/ddhack/

不过这个实现是通过软件方法来进行 索引->颜色 转换的,没有使用到显卡加速,在运行星际争霸时比较卡。

但这种方法只需要在程序文件夹下放入一个ddraw.dll的文件就可以实现,比较方便。

也许以后会有人通过DirectX或者OpenGL来模拟DirectDraw的功能,能够比较完善的解决这个问题。

方法二:

如果你用优化大师优化Windows7过关机速度,那么很不幸你的屏幕将会闪,也就是点文件夹的时候,作为背景的桌面会跳出来闪一下,同时左上角会出现notresponding。

解决方法:删除HKEY_USERS.DEFAULTDESKTOP下的HUNGAPPTIMEOUT以及WAITTOKILLAPPTIMEOUT子键

删除HKEY_CURRENT_USERHKEY_CURRENT_USERControlPanelHKEY_CURRENT_USERControlPanelDesktop下的HUNGAPPTIMEOUT,WAITTOKILLAPPTIMEOUT,WAITTOKILLSERVICETIMEOUT子键。

【如何修改注册表解决windows7闪屏的问题】相关文章:

解决Win7系统提示调查路由器或访问点问题的方法

如何安装win7网络打印机驱动

Windows系统中错误报告功能的启用方法

win10 mobile预览版14393.67首次上手体验视频

win10系统dns服务器未响应怎么办 Win10系统dns出错的解决方法图文教程

Win7装KB3146706后蓝屏代码0x0000006B或是Ghost惹的祸

Win10预览版14393中推送补丁解决Surface Pro 4/Book蓝屏问题

win10系统如何将自己的桌面整理更干净、大气?

Win10系统桌面转制UWP应用介绍

win10系统中怎么让CMD命令提示符复制粘贴更快捷?

精品推荐
分类导航