Windows 后卫阻止在 Java 中获取指针位置
Windows Defender Blocks getting Pointer location in 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();
}
错误:
通知面板中弹出一条通知:
Unauthorized Changes blocked
Controlled folder access blocked netbeans64.exe from making changes.
通知详情
在访问指针位置之前它工作正常。 e.printstacktrace()
没有抛出异常。我该怎么办?
更新
如果我在 Defender 设置中允许它,我就可以访问指针位置。如何从 Java 启用它?它将引导每个使用该应用程序的人从似乎不太安静的 Defender 设置中允许它。有什么想法吗?
我曾经遇到过这个问题。事实证明,Windows 上的某些文件夹被视为特殊文件夹,当应用以某种方式修改时,会引发此警报。用户的 Documents
文件夹是这些文件夹之一(图片、下载和 C:\Windows
等可能也是)。从您的屏幕截图我们看到您的应用程序项目 运行s 在 %userprofile%/Documents/NetBeansProject...
目录中。如果您 运行 通过构建 system/IDE 应用程序,它可能会创建一些临时文件。这被 Defender 捕获并阻止了。
只需尝试...将项目移出 Documents
文件夹。 (当我遇到这个问题时它对我有用)。
如果它不起作用,那么它可能与 java SecurityManager
相关,并且 MouseInfo
可能以某种方式触发 SecurityException
或其他一些情况他们在 documentation
中所写的机制
无论如何,如果有帮助,请提供信息。
我正在使用下面的代码来获取指针位置,但是 windows 10 在我 运行 应用程序时阻止了访问。
while (true) {
//Thread.sleep(100);
try {
System.out.println("(" + MouseInfo.getPointerInfo().getLocation().x
+ ", "
+ MouseInfo.getPointerInfo().getLocation().y + ")");
} catch (Exception e) {
e.printStackTrace();
}
错误:
通知面板中弹出一条通知:
Unauthorized Changes blocked Controlled folder access blocked netbeans64.exe from making changes.
通知详情
在访问指针位置之前它工作正常。 e.printstacktrace()
没有抛出异常。我该怎么办?
更新
如果我在 Defender 设置中允许它,我就可以访问指针位置。如何从 Java 启用它?它将引导每个使用该应用程序的人从似乎不太安静的 Defender 设置中允许它。有什么想法吗?
我曾经遇到过这个问题。事实证明,Windows 上的某些文件夹被视为特殊文件夹,当应用以某种方式修改时,会引发此警报。用户的 Documents
文件夹是这些文件夹之一(图片、下载和 C:\Windows
等可能也是)。从您的屏幕截图我们看到您的应用程序项目 运行s 在 %userprofile%/Documents/NetBeansProject...
目录中。如果您 运行 通过构建 system/IDE 应用程序,它可能会创建一些临时文件。这被 Defender 捕获并阻止了。
只需尝试...将项目移出 Documents
文件夹。 (当我遇到这个问题时它对我有用)。
如果它不起作用,那么它可能与 java SecurityManager
相关,并且 MouseInfo
可能以某种方式触发 SecurityException
或其他一些情况他们在 documentation
无论如何,如果有帮助,请提供信息。