首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# -击败键盘记录器的透明窗口

C# -击败键盘记录器的透明窗口
EN

Stack Overflow用户
提问于 2013-04-11 03:54:41
回答 5查看 1.8K关注 0票数 6

如何创建对用户完全可见但在屏幕截图中不可见的窗口。我知道这是可能的,因为Neo SafeKeys (一个用来击败键盘记录器的屏幕键盘)没有出现在我安装的键盘记录软件所拍摄的屏幕截图中。

为了给你一个概念,这个窗口对用户是完全可见的,但是当截屏时,Neo SafeKeys窗口根本不出现(就像它甚至不存在一样)。

Neo SafeKeys表示,它在窗口上方使用了一个看不见的保护层来保护屏幕截图。我在互联网上找遍了,想知道怎样才能重现这个场景,但都无济于事。有谁知道这是如何实现的(对用户可见但在屏幕截图中不可见的窗口)?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-11 04:00:03

您可以做的是,您可以阻止PrtScn键在按下时执行任何操作。请看一下this article,同时向您展示如何做到这一点。

本文所做的就是清理剪贴板。取而代之的是捕获屏幕图像并以数字方式移除应用程序,然后将修改后的图像放到剪贴板上,从而产生使窗口透明的“效果”。

此外,你可能想看看this SO question,它提供了一种替代方法,让你的窗口只显示为“蓝色”,尽管这不容易做到。

票数 4
EN

Stack Overflow用户

发布于 2013-04-11 04:23:16

有人知道这是如何实现的吗(对用户可见但在屏幕截图中不可见的窗口)?

使用DirectX直接渲染到设备。

票数 4
EN

Stack Overflow用户

发布于 2013-04-11 04:21:36

在C#应用程序中,您可以设置一个全局钩子来监视键盘事件。然后,您的应用程序将成为打印屏幕的全局处理程序。现在,如果另一个应用程序管理的屏幕本机打印,不能阻止它,但是任何通过windows运行的东西,你都可以得到。

DLL挂钩是可以在托管代码中使用的为数不多的全局挂钩之一,因为它不需要将WM_KEYBOARD_LL注入到每个目标中。

有关您可以在此处访问的一些代码:

Adam's Blog

请记住,这些是全局钩子,因此您希望确保不会影响任何其他(其他应用程序)。我在过去使用过这些,因为我们在主机上展示了我们工作的应用程序中的power point。基本上,我们不希望用户调用任何powerpoint菜单或键盘快捷键,所以我们使用了全局钩子。我们总是检查用户是否在某个区域(屏幕)和我们的应用程序中,否则我们会影响其他应用程序的功能(包括我们自己的!)

Microsoft信息:

Hooks Overview

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15935195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档