注册 登录
编程论坛 VB6论坛

VB能否使用基于像素点的方法实时替换掉屏幕的颜色?

yuma 发布于 2022-09-01 09:55, 1380 次点击
电脑屏幕呈现的白色晚上刺眼,想给白色实时替换成浅绿色。


会不会替换之后,刷新率的关系,颜色又还原了。

刷新的问题如何解决?

[此贴子已经被作者于2022-9-1 10:08编辑过]

7 回复
#2
风吹过b2022-09-01 10:08
应该可以吧。。。。。。。。。。

我理解的逻辑
1、WINDOWS各个元素的颜色,包括窗体颜色,这些,都是写在注册表里的,详见 主题设置
2、在VB6 中,设置颜色时,那些颜色常量,小于0 的那些,对应的就是 系统各元素 的颜色,说明存在这些颜色设置的。
3、找到在注册表中的设置位置,修改它。然后再刷新整个屏幕,就应该可以了。
4、如果能达成目标,建议还是使用系统的主题来设置。

#3
yuma2022-09-01 10:11
我只想替换全局白色为浅绿色。

电脑屏幕每秒60次的刷新率,是否会还原替换后的颜色?
#4
yuma2022-09-01 10:15
修改注册表\HKEY_CURRENT_USER\Control Panel\Colors 下Windows项的RGB值实现的护眼,并非全局护眼(例如:浏览器它就不护眼)。

程序代码:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Colors]
"ActiveBorder"="180 180 180"
"ActiveTitle"="153 180 209"
"AppWorkspace"="171 171 171"
"Background"="227 237 205"
"ButtonAlternateFace"="0 0 0"
"ButtonDkShadow"="105 105 105"
"ButtonFace"="240 240 240"
"ButtonHilight"="255 255 255"
"ButtonLight"="227 227 227"
"ButtonShadow"="160 160 160"
"ButtonText"="0 0 0"
"GradientActiveTitle"="185 209 234"
"GradientInactiveTitle"="215 228 242"
"GrayText"="109 109 109"
"Hilight"="0 120 215"
"HilightText"="255 255 255"
"HotTrackingColor"="0 102 204"
"InactiveBorder"="244 247 252"
"InactiveTitle"="191 205 219"
"InactiveTitleText"="0 0 0"
"InfoText"="0 0 0"
"InfoWindow"="255 255 225"
"Menu"="240 240 240"
"MenuBar"="240 240 240"
"MenuHilight"="0 120 215"
"MenuText"="0 0 0"
"Scrollbar"="200 200 200"
"TitleText"="0 0 0"
"Window"="255 255 255"
"WindowFrame"="100 100 100"
"WindowText"="0 0 0"


[此贴子已经被作者于2022-9-1 10:19编辑过]

#5
风吹过b2022-09-01 10:29
自定义替换颜色,这个。。。。。。。

1、用 C++ ,写驱动,找到原来的显卡驱动,然后在驱动里做文章。
2、写颜色配置文件。。。。这个我不懂。


#6
yuma2022-09-03 09:48
回复 5楼 风吹过b
不如直接买一张绿膜贴在屏幕上方便。
#7
吹水佬2022-09-03 11:35
看看这个有无作用:
只有本站会员才能查看附件,请 登录
#8
yuma2022-09-03 12:44
颜色滤镜是一个好主意,或许可以实现。
1