2014-01-21 37 views
3

我注意到,当我在Outlook 2013中打开受IRM保护的电子邮件时按下PrntScrn时,当我将屏幕截图粘贴到mspaint时,电子邮件的窗口将替换为纯黑色矩形。Office 2013如何为IRM实施黑色窗口?

我不知道任何“屏幕截图”窗口消息被发送到Windows,那么这个功能是如何实现的?我从来没有在监视器上看到任何黑色像素,所以我不认为它有一个键盘钩来监听PrntScrn,然后将窗口涂黑。

回答

5

在显示窗口之前使用WinAPI函数SetWindowDisplayAffinityWDA_MONITOR亲和力。

SetWindowDisplayAffinity(hwnd, WDA_MONITOR); // Should, of course, check return value 
ShowWindow(hwnd, SW_NORMAL); 

注意在Windows 7这仅适用于高,只为一组特定的“公共操作系统功能和API”,只有当窗口DWM-合成。请参阅备注段落中的两段链接文档。

+0

看起来就是这样 - 谢谢! – Dai