我喜欢使用以下属性进行叠加:
每一点的详情:
1)我假设已激活WDM并使用DirectX 11.2。当然,将它用于其他Windows版本会很好,但这没有优先权。
2)问题在于,只需使用WS_EX_TOPMOST,应用程序中的菜单就在我的叠加层上。在我的情况下,这真的很痛,因为我喜欢显示与光标具有相同属性的东西。想象一下,如果你打开一个菜单,突然隐藏了一个光标 - >不可接受的。
3)我喜欢从Windows桌面读取像素,包括Windows应用的任何效果(如模糊),并将此信息用于我的过滤器。如果我添加我的叠加层,如2中所述,我应该能够在下一帧中获得新的无障碍背景副本,而不是读出我自己的叠加层。
4)如果我直接在Windows桌面上写东西,它会在下一帧被Windows自动覆盖。这是不可接受的。
这种应用的一个例子是放大镜,它具有我需要的所有属性。但是对于这种情况,Windows 8.1有一个API。相比之下,我喜欢编写一个程序,在桌面上显示一个手(由Leap Motion控制),这会影响Windows桌面,因此您几乎“感觉”如何将手移到桌面上。
如果我为自己编写一个小型的DirectX和/或OpenGL应用程序,这一切都非常简单:
但我喜欢在整个Windows桌面上这样做。
我找到了许多不同的应用程序,但它们对我没用:
我的问题可归结为:如何为Windows 8.1编写自己的放大镜。
我担心我唯一认真的选择是将自己融入WDM,我试图避免这种情况。
我很高兴听到任何想法如何实现这一点,或提示应用程序正在做我所描述的。