我正在尝试创建一个全屏幕叠加层,可以改变整个屏幕的颜色/饱和度等,并添加一些文本和效果。基本上,我想要“替换”整个屏幕,同时用户仍然可以正常与Windows进行交互。
解决方案1
问题在于,如果我只是在整个屏幕上创建一个
我看到的最接近的东西是这个,但是用户将无法“点击穿透”覆盖层。在示例中,覆盖层主要是完全透明的。使用透明键以外的颜色将导致解决方案1的问题。
问题:如何有效地叠加整个屏幕上的效果?
TopMost
窗口,用户将无法与该窗口下面的任何内容进行交互。
解决方案2
简单地在桌面缓冲区上绘图也无法解决这个问题。当窗口移动时会出现不良影响,而且还会产生很重的运动模糊效果。这永远不会看起来好。
解决方案3
在C#中钩取“桌面绘制事件”是不可能的,因为我必须将DLL注入到explorer.exe中。这不是一个漂亮的解决方案,也不适用于C#。此外,防病毒程序很可能会将其检测为有害物品。
我看到的最接近的东西是这个,但是用户将无法“点击穿透”覆盖层。在示例中,覆盖层主要是完全透明的。使用透明键以外的颜色将导致解决方案1的问题。
问题:如何有效地叠加整个屏幕上的效果?