如何在Windows 8 Metro界面上方绘制?

我想绘制将驻留在所有其他界面之上的图形,包括Windows 8新主屏幕。 你会怎么做呢? 对于Windows 7及更低版本,它就像显示透明的全屏窗口一样简单,但现在由于桌面与操作系统的其余部分分离,因此不再可能。

原因是我需要显示两个独立于Windows鼠标光标的游标。 我正在开发一个用于Wii遥控器的多点触控模拟软件(使用传感器条指针),目前我只需设置光标位置并通过抖动+1和-1像素唤醒它。 但它干扰了触摸,所以我必须在使用触摸模拟时禁用它。 它目前有效,但我想添加多点触控支持,以便您可以使用Wii遥控器进行缩放和旋转。 触摸function已准备就绪,但您可能希望在使用Wii遥控器时握住一个触摸点并选择另一个触摸点时看到光标,并且在按住第一个触摸点时,Windows光标无法移动到其他任何位置,因为它坚持触摸点。

我已经看到如何通过为屏幕获取Graphics对象直接绘制到屏幕,但它不起作用,因为它完全不受管理,因此图形保持可见,直到其他东西刷新该区域。

那么,有什么建议吗?

涉及的项目名为Touchmote,可在touchmote.net上作为源代码和可安装的beta版提供。

  1. 通过在requestedPrivileges属性中指定UIAccess =“true”来请求应用程序清单中的UIAccess完整性级别 。
  2. 使窗口最顶层(通过SetWindowPos更改位置或在WinForms / WPF中设置TopMost属性)
  3. 使用数字证书对应用程序进行签名,该证书链接到本地​​计算机受信任的根证书颁发机构证书存储中的受信任根 。
  4. 从文件系统中的安全位置直接(即, 不是从调试器 ) 运行 。 之后您可以附加调试器。

请注意,这会使您的应用程序运行升级, 当您需要从较低的完整性级别连接到您的应用程序时 ,可能会遇到问题 。

您已尝试执行的操作已有接口:触摸注入。 您可以指定您在范围内但没有与屏幕接触的联系人,并且屏幕上会出现一个小圆圈。 你不需要自己绘制圆圈; 触摸系统将为您完成。