【问题标题】:SetWindowDisplayAffinity fails with error "Access denied"SetWindowDisplayAffinity 失败并出现错误“访问被拒绝”
【发布时间】:2015-06-06 11:27:00
【问题描述】:

我在 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)。

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

【问题讨论】:

标签: java winapi jna


【解决方案1】:

SetWindowDisplayAffinity 只能在调用进程拥有的窗口上使用。因此错误。文档说:

此功能使应用程序能够保护自己的屏幕窗口内容不被通过一组特定的公共操作系统功能和 API 捕获或复制。

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

【讨论】:

  • 我们如何在创建时为 flex 应用程序设置 setWindowDisplayAffinity。有没有办法做到这一点? @david-heffernan
猜你喜欢
  • 2015-01-05
  • 2012-05-02
  • 2021-05-01
  • 1970-01-01
  • 2014-07-07
  • 2019-05-30
  • 2012-01-02
  • 1970-01-01
  • 2021-04-04
相关资源
最近更新 更多