2013-11-05 19 views
4

我剛剛發現了awt.Robot庫,我很興奮能夠使用它。我想我會對我的朋友玩一個小惡作劇,並讓機器人按下控制按鈕,或者刪除按下鎖定電腦按鈕,但我無法讓程序調出控制ALT刪除屏幕。Java awt.Robot:CTRL + ALT + DEL不會顯示所需的屏幕

這裏是我的代碼:

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); 
} 
} 
+0

我想它有一些東西需要做的是,雖然我不知道我怎麼能規避。 –

+0

根據您想要達到的目標,可能會有解決方法。我有同樣的問題。 – TheLostMind

+0

請參閱http://stackoverflow.com/q/13193293/1356559 –

回答

5

這不能在Windows XP (?+補丁)進行向前與模擬的關鍵事件。

從上一篇舊文一comment here顯示此如何使用能夠模擬:

有關Vista的安全原因,我們不能播放熱鍵消息,以模擬CTRL + ALT + DEL。 要做到這一點對VISTA你需要使用專門的圖書館「SASLIB」默認情況下不提供...

無論如何,如果你使用Win32(或其他OS)API直接,你可能有機會獲得適當的API來執行任務。例如,請參見LockWorkStation

此功能與按Ctrl + Alt + Del並單擊鎖定工作站的結果相同。

有關如何訪問本機(Windows)API的線索,請參閱Is there a Java library to access the native Windows API?


從我假定目標的操作的描述是Windows操作系統。

0

我擡頭如何通過命令行訪問按Ctrl + Alt鍵+德爾不幸的是它是不可能的。

然而,可以通過使用此代碼的命令行來鎖定計算機:

try { 

    Runtime.getRuntime().exec("rundll32 user32.dll,LockWorkStation"); 

} catch (IOException ex) { 
    Logger.getLogger(TimeFrame.class.getName()).log(Level.SEVERE, null, ex); 
}