我刚刚发现了awt.Robot库,我很高兴能够使用它.我以为我会对我的朋友玩一个小恶作剧,并有机器人按下控制,alt,删除按下锁定电脑按钮但我无法让程序调出控制alt删除屏幕.
这是我的代码:
import java.awt.*;
import java.awt.event.KeyEvent;
public class Bot {
public static void main(String[] args)
{
try {
Robot bot = new Robot();
bot.delay(4000);
bot.keyPress(KeyEvent.VK_CONTROL);
bot.delay(100);
bot.keyPress(KeyEvent.VK_ALT);
bot.delay(100);
bot.keyPress(KeyEvent.VK_DELETE);
bot.delay(500);
bot.keyRelease(KeyEvent.VK_CONTROL);
bot.keyRelease(KeyEvent.VK_ALT);
bot.keyRelease(KeyEvent.VK_DELETE);
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void pressEnter(Robot bot)
{
bot.keyPress(KeyEvent.VK_ENTER);
bot.delay(40);
bot.keyRelease(KeyEvent.VK_ENTER);
}
}
Run Code Online (Sandbox Code Playgroud)
在模拟键事件的Windows XP 1(+补丁?)中无法完成此操作.
从这里评论上显示如何老款使用的是能够模拟:
出于安全原因,我们无法播放热键消息以模拟CTRL ALT DEL.要在VISTA上执行此操作,您需要使用默认情况下未提供的特殊库"SASLIB"...
无论如何,如果直接使用Win32(或任何操作系统)API,您可能有权访问相应的API来执行任务.例如,请参阅LockWorkStation:
此功能与按Ctrl + Alt + Del并单击"锁定工作站"的结果相同.
请参阅是否有Java库来访问本机Windows API?了解如何访问本机(Windows)API.
1从操作说明我假设目标是Windows.