Java - 在Windows 8/10

时间:2015-12-23 12:30:25

标签: java windows screensaver keystroke

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

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

还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

我用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