2016-09-11 7 views
2

私はLinux用の簡単なホットキープログラムを手に入れました。プログラムがハイライト表示されたら、それは完全に機能しますが、別のアプリをクリックすると、プログラムは応答しません。プログラムがバックグラウンドで実行されても応答する方法はありますか?Javaハイライトされていないプログラムをホットキーに対応させる方法

import javax.swing.*; 
 
import java.awt.*; 
 
import java.awt.event.*; 
 

 
class ahkkeys extends JFrame { 
 
\t /** 
 
\t \t * 
 
\t \t */ 
 
\t private static final long serialVersionUID = 7564262221986249595L; 
 
\t /** 
 
\t \t * 
 
\t \t */ 
 
\t Robot r; 
 

 
\t public ahkkeys() { 
 
\t \t createAndShowGUI(); 
 
\t } 
 

 
\t private void createAndShowGUI() { 
 
\t \t setTitle("Move Cursor with Keyboard"); 
 
\t \t setDefaultCloseOperation(EXIT_ON_CLOSE); 
 

 
\t \t // hide the visibility 
 
\t \t setUndecorated(true); 
 
\t \t setOpacity(1); 
 
\t \t setVisible(true); 
 

 
\t \t // Create Robot object 
 
\t \t try { 
 
\t \t \t r = new Robot(); 
 
\t \t } catch (Exception e) { 
 
\t \t } 
 

 
\t \t addKeyListener(new KeyAdapter() { 
 
\t \t \t public void keyPressed(KeyEvent e) { 
 
\t \t \t \t if (r == null) 
 
\t \t \t \t \t return; 
 
\t \t \t \t Point p = MouseInfo.getPointerInfo().getLocation(); 
 

 
\t \t \t \t switch (e.getKeyCode()) { 
 
\t \t \t \t // 2::Click right 
 
\t \t \t \t case KeyEvent.VK_2: 
 
\t \t \t \t \t r.mousePress(MouseEvent.BUTTON3_MASK); 
 
\t \t \t \t \t r.mouseRelease(MouseEvent.BUTTON3_MASK); 
 
        break; 
 
\t \t \t \t \t // move down 
 
\t \t \t \t case KeyEvent.VK_3: 
 
\t \t \t \t \t r.mouseMove(p.x, p.y + 55); 
 
        break; 
 
\t \t \t \t // left click 
 
\t \t \t \t case KeyEvent.VK_4: 
 
\t \t \t \t \t r.mousePress(MouseEvent.BUTTON1_MASK); 
 
\t \t \t \t \t r.mouseRelease(MouseEvent.BUTTON1_MASK); 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t }); 
 
\t } 
 

 
\t public static void main(String args[]) { 
 
\t \t new ahkkeys(); 
 
\t } 
 
}

答えて

0

Javaは完全にこの機能を提供しません。

alwaysOnTopを設定しても、達成しようとしていることがわかりません。

「もっと深く」する必要がある場合は、ライブラリを使用する必要があります。残念ながら、これらのライブラリはプラットフォームに依存しません。 this topicを使い始めることができます。

0

例:キーボードの「3」を押すと、マウスが下に移動します。私が「2」を押すと、右クリックされます。しかし、クリックすると、ウィンドウをクリックしてプログラムが動作しなくなります。私はプログラムからクリックしたことを意味します。

プログラムウィンドウの横にある他のウィンドウでもクリックしてもうまくいきたいです。

関連する問題