2009-07-23 18 views
6

Geliştirme alanına geri dönmek için; önceliklePencere başlığını JNI veya JNA ile nasıl okuyabilirim?

Java kullanarak bir değişik çalışan penceresinden başlığını okuyabilir nerede birisi bir yere işaret edebilir (.... (ben NET'te inşa etmek İstemesem) bazı yerli win32 işlevleri çağırmak için Java kullanarak JNI'yı/JNA/yudum). Hafıza alanında nerede çırpmaya çalıştığınızı bildiğinizi varsayalım. JNA yılında

cevap

9

:

public interface User32 extends StdCallLibrary { 
    User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class); 

    int GetWindowTextA(PointerType hWnd, byte[] lpString, int nMaxCount); 
} 

kullanmak için:

byte[] windowText = new byte[512]; 

PointerType hwnd = ... // assign the window handle here. 
User32.INSTANCE.GetWindowTextA(hwnd, windowText, 512); 
System.out.println(Native.toString(windowText)); 

Muhtemelen HWND için uygun yapı eşleştirmeleri kullanmak ve aynı zamanda unicode desteğini sağlamak isteyeceksiniz; Bu bilgiyi ve JNA website o nasıl yapılacağına ilişkin daha fazla örnek bulabilirsiniz.

GetWindowText işlevi için dokümantasyon MSDN burada mevcuttur. JNA için

Belgeler i Pencere tanıtıcı nasıl alabilirim jna.dev.java.net

+8

mevcuttur? – Synox