Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


Интересна Java? Кликай по ссылке и изучай!
Если тебе полезно что-то из того, чем я делюсь в своем блоге - можешь поделиться своими деньгами со мной.
с пожеланием
столько времени читатели провели на блоге - 
сейчас онлайн - 

суббота, 18 октября 2014 г.

Вызов win api из java с помощью JNI

Сегодня стояла задача получить доступ к WinApi из Java. На помощь пришел JNI.

Дня начала в maven надо прописать две зависимости.
<dependencies>
 <dependency>
  <groupId>net.java.dev.jna</groupId>
  <artifactId>jna</artifactId>
  <version>4.1.0</version>
 </dependency>
 <dependency>
  <groupId>net.java.dev.jna</groupId>
  <artifactId>jna-platform</artifactId>
  <version>4.1.0</version>
 </dependency>
</dependencies>
А теперь выведем в консоль, например, заголовок активного окна с помощью этого кода.
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;

public class GetForegroundWindowTitle {

    public static void main(String[] args) {
        User32 user32Lib = User32.INSTANCE;
        WinDef.HWND hwnd = user32Lib.GetForegroundWindow();

        char[] title = new char[10240];
        user32Lib.GetWindowText(hwnd, title, title.length);

        System.out.println(String.valueOf(title).trim());
    }
}
С JNI есть доступ к api unix, mac и других осей.

Комментариев нет:

Отправить комментарий