3
我注意到,当我在Outlook 2013中打开受IRM保护的电子邮件时按下PrntScrn时,当我将屏幕截图粘贴到mspaint时,电子邮件的窗口将替换为纯黑色矩形。Office 2013如何为IRM实施黑色窗口?
我不知道任何“屏幕截图”窗口消息被发送到Windows,那么这个功能是如何实现的?我从来没有在监视器上看到任何黑色像素,所以我不认为它有一个键盘钩来监听PrntScrn,然后将窗口涂黑。
我注意到,当我在Outlook 2013中打开受IRM保护的电子邮件时按下PrntScrn时,当我将屏幕截图粘贴到mspaint时,电子邮件的窗口将替换为纯黑色矩形。Office 2013如何为IRM实施黑色窗口?
我不知道任何“屏幕截图”窗口消息被发送到Windows,那么这个功能是如何实现的?我从来没有在监视器上看到任何黑色像素,所以我不认为它有一个键盘钩来监听PrntScrn,然后将窗口涂黑。
在显示窗口之前使用WinAPI函数SetWindowDisplayAffinity
和WDA_MONITOR
亲和力。
SetWindowDisplayAffinity(hwnd, WDA_MONITOR); // Should, of course, check return value
ShowWindow(hwnd, SW_NORMAL);
注意在Windows 7这仅适用于高,只为一组特定的“公共操作系统功能和API”,只有当窗口DWM-合成。请参阅备注段落中的两段链接文档。
看起来就是这样 - 谢谢! – Dai