我注意到当我在Outlook 2013中打开受IRM保护的电子邮件时按PrntScrn时,当我将屏幕截图粘贴到mspaint时,电子邮件的窗口将替换为纯黑色矩形.
我不知道有任何"屏幕截图"窗口消息被发送到Windows,那么这个功能是如何实现的?我从来没有在显示器上看到任何黑色像素,因此我认为它没有键盘钩子来侦听PrntScrn然后将窗口涂成黑色.
在显示窗口之前使用SetWindowDisplayAffinity
具有WDA_MONITOR
亲和力的WinAPI函数.
SetWindowDisplayAffinity(hwnd, WDA_MONITOR); // Should, of course, check return value
ShowWindow(hwnd, SW_NORMAL);
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于Windows 7及更高版本,仅适用于某些"公共操作系统功能和API",并且仅在窗口是DWM合成时才有效.请参阅链接文档的" 备注"部分中的两个段落.
归档时间: |
|
查看次数: |
620 次 |
最近记录: |