编程论坛
注册
登录
编程论坛
→
VB6论坛
VB能否使用基于像素点的方法实时替换掉屏幕的颜色?
yuma
发布于 2022-09-01 09:55, 1380 次点击
电脑屏幕呈现的白色晚上刺眼,想给白色实时替换成浅绿色。
会不会替换之后,刷新率的关系,颜色又还原了。
刷新的问题如何解决?
[此贴子已经被作者于2022-9-1 10:08编辑过]
7 回复
#2
风吹过b
2022-09-01 10:08
应该可以吧。。。。。。。。。。
我理解的逻辑
1、WINDOWS各个元素的颜色,包括窗体颜色,这些,都是写在注册表里的,详见 主题设置
2、在VB6 中,设置颜色时,那些颜色常量,小于0 的那些,对应的就是 系统各元素 的颜色,说明存在这些颜色设置的。
3、找到在注册表中的设置位置,修改它。然后再刷新整个屏幕,就应该可以了。
4、如果能达成目标,建议还是使用系统的主题来设置。
#3
yuma
2022-09-01 10:11
我只想替换全局白色为浅绿色。
电脑屏幕每秒60次的刷新率,是否会还原替换后的颜色?
#4
yuma
2022-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
风吹过b
2022-09-01 10:29
自定义替换颜色,这个。。。。。。。
1、用 C++ ,写驱动,找到原来的显卡驱动,然后在驱动里做文章。
2、写颜色配置文件。。。。这个我不懂。
#6
yuma
2022-09-03 09:48
回复 5楼 风吹过b
不如直接买一张绿膜贴在屏幕上方便。
#7
吹水佬
2022-09-03 11:35
看看这个有无作用:
只有本站会员才能查看附件,请
登录
#8
yuma
2022-09-03 12:44
颜色滤镜是一个好主意,或许可以实现。
1