我在java中使用jna.extra.User32Extra库来查找窗口并更改windowdisplayaffinity值。 但它返回“ACCESS DENIED”错误代码。
HWND top= target.findWindow("WindowTitle");
System.err.println(User32Extra.INSTANCE.SetWindowDisplayAffinity(top, 0));
System.err.println(Native.getLastError());
以下代码给出“false”和错误代码“5”(ACCESS DENIED)。
我需要任何额外的权限吗?这个错误的原因是什么?
答案 0 :(得分:2)
SetWindowDisplayAffinity
只能在调用进程拥有的窗口上使用。因此错误。文档说:
此功能使应用程序能够保护自己的屏幕窗口内容不被通过一组特定的公共操作系统功能和API捕获或复制。
如果另一个应用程序可以轻易覆盖目标应用程序的选择,则该功能将变得无用。