Java-在Windows 8/10上以编程方式退出屏幕保护程序

Java-在Windows 8/10上以编程方式退出屏幕保护程序,java,windows,screensaver,keystroke,Java,Windows,Screensaver,Keystroke,我正在寻找一种方法,以编程方式启动触发器,从Java应用程序中退出活动屏幕保护程序 在Windows7中,我使用Java Robot类的按键退出活动屏幕保护程序。此方法不再适用于Windows 8/10 还有其他方法吗?我用windows批处理文件解决了这个问题。批处理文件是从java进程执行的 批处理文件正在从注册表读取活动屏幕保护程序的名称,并使用taskkill命令终止该进程 下面是.bat文件的内容 rem active screensaver name from the registr

我正在寻找一种方法,以编程方式启动触发器,从Java应用程序中退出活动屏幕保护程序

在Windows7中,我使用Java Robot类的按键退出活动屏幕保护程序。此方法不再适用于Windows 8/10


还有其他方法吗?

我用windows批处理文件解决了这个问题。批处理文件是从java进程执行的

批处理文件正在从注册表读取活动屏幕保护程序的名称,并使用taskkill命令终止该进程

下面是.bat文件的内容

rem active screensaver name from the registry
FOR /F "tokens=2* delims=    " %%A IN ('REG QUERY "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE') DO SET screensaver=%%B
ECHO screensaver=%screensaver%

rem the screensaver name contains the absolute path 
rem extract only the name
Set filename=%screensaver%
For %%A in ("%filename%") do (
    Set Folder=%%~dpA
    Set Name=%%~nxA
)
echo.Folder is: %Folder%
echo.Name is: %Name%

rem kill the screensaver process
taskkill /im %Name% /f

你可以试试JNI,在coderanch上看看这个。从他使用的技术中,你可以搜索任何正在运行的程序,并向它发送一个回车键,就像他在文章中解释的那样。击键本身是使用Robot类正确执行的(我使用windows key+D来最小化java应用程序中的所有应用程序),但是,它不会退出屏幕保护程序。您尝试过移动鼠标吗?是的,没有帮助。我想知道Windows 8和早期版本的Windows屏幕保护程序有什么区别,这可能是对较新Windows版本进行安全更新的一部分吗。