SetWindowDisplayAffinity 失败并出现错误 "Access denied"

SetWindowDisplayAffinity fails with error "Access denied"

我正在 java 中使用 jna.extra.User32Extra 库来查找 window 并更改 windowdisplayaffinity 值。 但它返回 "ACCESS DENIED" 错误代码。

HWND top= target.findWindow("WindowTitle");
System.err.println(User32Extra.INSTANCE.SetWindowDisplayAffinity(top, 0));
System.err.println(Native.getLastError());

以下代码给出 "false" 和错误代码“5”(拒绝访问)。

我需要任何额外的权限吗?该错误的原因是什么?

SetWindowDisplayAffinity 只能用于调用进程拥有的 window。因此错误。文档说:

This feature enables applications to protect their own onscreen window content from being captured or copied through a specific set of public operating system features and APIs.

如果另一个应用程序可以如此轻易地覆盖目标应用程序的选择,则该功能将变得毫无用处。