2009-07-23 14 views
6

Szukam powrotu do przestrzeni rozwojowej; głównie przy użyciu Javy do wywoływania niektórych natywnych funkcji win32 (nie chcę budować w .NET) ...Jak mogę odczytać tytuł okna za pomocą JNI lub JNA?

Czy ktoś może wskazać mi miejsce, w którym mogę odczytać tytuł z innego okna uruchomionego przy użyciu Javy (JNI/JNA/SWIG). Załóżmy, że wiesz, gdzie w przestrzeni pamięci jest aplikacja, do której chcesz się podłączyć.

Odpowiedz

9

W JNA:

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

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

Aby go użyć:

byte[] windowText = new byte[512]; 

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

Będziesz prawdopodobnie chcesz użyć odpowiednich mapowania struktury dla HWND i pozwalają również obsługa Unicode; możesz znaleźć te informacje i więcej przykładów, jak to zrobić na JNA website.

Dokumentacja funkcji GetWindowText jest dostępna pod adresem MSDN.

Dokumentacja dla JNA jest dostępny na jna.dev.java.net

+8

jak mogę uzyskać uchwyt okna? – Synox

Powiązane problemy