我希望我的 Java 应用程序在特定超时后锁定 Windows 桌面。我有一个可以正常工作的计时器,但我似乎无法执行锁定工作站的命令。
javax.swing.Timer tim = new javax.swing.Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("CARD NOT PRESENT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
// LOCK SCREEN
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("%windir%/System32/rundll32.exe user32.dll,LockWorkStation");
}
});
这有什么错误吗?或者也许有更简单的方法来做到这一点?
最佳答案
我认为有一个更好的方法来测试这个:
1) 将命令放在 .bat 文件中。
2)运行bat文件。它有效吗?
3) 如果是这样,请在您的代码中调用 .bat 文件。
4)它有效吗?如果是这样,那么你就完成了。我认为将特定于 Windows 的代码编码到运行时 exec 中没有任何值(value),只需将 bat 文件作为应用程序中的单独文件即可。
Runtime.exec 有时会失败,因为 JVM 中的路径与它们在 native 操作系统中的路径不同。
关于java - 超时后从 Java 锁定 Windows 桌面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7642900/