2012-05-29 42 views
2

因此,我需要在我的應用程序中檢測用戶何時通過使用打印屏幕鍵盤按鈕在Windows中執行屏幕截圖。我注意到Picasa執行此操作並通知用戶,這在我的聊天軟件中非常有用。即使窗口沒有焦點,它也需要能夠檢測到它。任何人都知道我會如何做到這一點?當用戶在帶打印屏幕的窗口中拍攝屏幕截圖時,是否檢測到?

在此先感謝!

+0

相關: [用於捕獲活動窗口截圖的Java庫](http://stackoverflow.com/questions/2475303/java-library-for-capturing-active-window-screenshot) –

+0

當窗口沒有焦點時,你無法做到這一點..你可以做的是當窗戶失去焦點時做一些事情,例如最小化窗口。 – mickeymoon

回答

1

該KeyEvent類有一個名爲VK_PRINTSCREEN表示PrintScreen鍵的鍵碼...

要聽它被按下,你會寫的KeyListener這樣的事情...

public class PrintScrnListener implements KeyListener { 
    public void keyPressed(KeyEvent e) { 
     if (e.getKeyCode() == KeyEvent.VK_PRINTSCREEN) { 
      // Do whatever... 
     } 
    } 
    public void keyReleased(KeyEvent e) {} 
    public void keyTyped(KeyEvent e) {} 
} 
+0

是的,但只有當窗口有焦點時纔會捕獲此事件。我希望能夠捕捉到這一點,而不必關注窗口。我假設我將不得不聽取關鍵新聞,但在Windows中觸發某種事件或通過Windows服務。 – Brandon