2010-05-30 3 views
0

Я пытаюсь сделать приложение Java, которое может получить информацию из другой активной оконной программы, такой как информационная панель или даже скриншот другого активного окна.получить активное окно из других программ, используя java

Является ли JNI единственным вариантом в этом случае?

Спасибо.

ответ

0

Эти вещи невозможны с использованием чистой Java.

Ваши варианты используют собственные библиотеки через JNI/JNI или вызовы некоторых внешних приложений с использованием Runtime.exec(...).

0

Получение информации о других элементах, связанных с операционной системой, должно выполняться с помощью специальных средств ОС. Возможно, вы сможете запустить некоторые скрипты из своей программы и получить некоторую информацию для чтения результатов этих сценариев?
В противном случае JNI - это путь. Вся идея Java - быть независимой от платформы, это достигается путем скрытия ОС.

Скриншоты возможны

import java.awt.AWTException; 
import java.awt.Rectangle; 
import java.awt.Robot; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 

public class RobotExp { 

    public static void main(String[] args) { 

     try { 

      Robot robot = new Robot(); 
      // Capture the screen shot of the area of the screen defined by the rectangle 
      BufferedImage bi=robot.createScreenCapture(new Rectangle(100,100)); 
      ImageIO.write(bi, "jpg", new File("C:/imageTest.jpg")); 

     } catch (AWTException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

я знаю это, но я хотел, чтобы получить скриншот активного окна другой программы на окнах ... как Стивен C говорит, что это не возможно, используя чистую библиотеку Java. я думаю ... ? – 2010-05-31 06:29:59

+1

Вы можете попасть на экран, Java не знает других окон в системе, для этого вам нужно использовать JNI, как говорит Стивен. –

Смежные вопросы