0

正如标题所示,我需要创建一个无法使用打印屏幕捕获的 Windows 应用程序。

该应用程序将在我的计算机上运行,​​并将显示在我的屏幕上。没有互联网参与。

这可以在 C++ 中做到这一点吗?或任何其他语言?

谢谢你。

4

2 回答 2

2

据我所知,有两种方法可以实现它:

  1. 当您的应用程序是具有焦点的窗口时,不允许打印屏幕 - 这是相当的

简单:你需要修改你的窗口过程来捕获WM_HOTKEY并且你不能将它传递回系统:

case WM_HOTKEY:
/* your code */;
break; // no DefWndProc() call
  1. 当您的应用程序正在运行时,根本不允许打印屏幕。您将必须设置一个挂钩,它将所有消息(甚至是窗口外的消息)定向到您的程序。可以在这里找到准确的信息:http ://www.cubert.net/2008/05/sntt-disable-print-screen-key-win32-api.html

当检测到打印屏幕时,您还可以让您的用户制作打印屏幕,但空白窗口。为此,在片段中:

case WM_HOTKEY: 
/* here you blank your window */;
DefWndProc(); // send the message about print screen back to the system.
break;

当然,这一切都取决于您使用的 API,但假设您使用裸 WinAPI - 这就是您这样做的方式。

于 2013-11-14T19:42:06.220 回答
1

你最多可以做这种“类型”。您可以捕获 windows 打印屏幕事件并且什么都不做,但是 3rd 方打印屏幕不依赖于这些。一个好的高分辨率数码相机更难“编码”

于 2013-11-14T19:34:12.973 回答