java - Windows Defender 阻止在 Java 中获取指针位置
问题描述
我正在使用下面的代码来获取指针位置,但 Windows 10 在我运行应用程序时阻止了访问。
while (true) {
//Thread.sleep(100);
try {
System.out.println("(" + MouseInfo.getPointerInfo().getLocation().x
+ ", "
+ MouseInfo.getPointerInfo().getLocation().y + ")");
} catch (Exception e) {
e.printStackTrace();
}
错误:
通知面板中弹出一条通知:
未经授权的更改被阻止 受控文件夹访问阻止 netbeans64.exe 进行更改。
在访问指针位置之前它工作正常。没有抛出异常e.printstacktrace()
。我应该做些什么?
更新
如果我从 Defender 设置中允许它,我可以访问指针位置。如何从 Java 启用它?它将引导每个使用该应用程序的人从看起来不太安静的防御者设置中允许它。请问有什么想法吗?
解决方案
我曾经遇到过这个问题。事实证明,Windows 上的某些文件夹被视为特殊文件夹,当应用程序以某种方式对其进行修改时,会引发此警报。用户的Documents
文件夹是这些文件夹之一(可能是图片、下载C:\Windows
等)。从您的屏幕截图中,我们看到您的应用项目在%userprofile%/Documents/NetBeansProject...
目录中运行。如果您通过某个构建系统/IDE 运行该应用程序,它可能会创建一些临时文件。这被 Defender 捕获并阻止。
只需尝试...将项目移出Documents
文件夹。(当我遇到这个问题时它对我有用)。
如果它不起作用,那么它可能与 java 相关的东西以及可能以某种方式触发SecurityManager
的案例或他们在文档中编写的其他机制MouseInfo
SecurityException
无论如何,如果这有帮助,请提供信息。
推荐阅读
- python - 改进神经网络以识别手语
- php - 这种方式使用自定义字段来更改 WooCommerce 中的“添加到卡片文本”好吗?
- azure - 让我们加密 Azure 错误“找不到 Web 应用程序”
- vb.net - 将 VB6 迁移到 VB.net 记录集和数据表
- red - 红色到 dotnet 或 java android:.Net -> Red(未实现)
- javascript - How to align and get rid of overlapping videos?
- regex - Scala正则表达式:组之间的捕获
- swift - 从 Alamofire 请求分配数据后无响应
- tcp - TCP/IP 堆栈中的链路层是否根据目的地的 IP 地址派生要接收数据包的 NIC 的 MAC 地址?
- python - 如何让机器人调用自己?