2009-07-23 4 views
6

Blick zurück in den Entwicklungsraum; hauptsächlich mit Java, um einige native win32-Funktionen aufzurufen (Ich möchte nicht in .NET einbauen) ....Wie kann ich den Fenstertitel mit JNI oder JNA lesen?

Kann mir jemand auf einen Ort zeigen, wo ich den Titel aus einem anderen laufenden Fenster mit Java (JNI/JNA/SWIG). Angenommen, Sie würden wissen, wo im Speicherbereich die Anwendung, in die Sie sich einklinken wollen, ist.

Antwort

9

In JNA:

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

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

es zu benutzen:

byte[] windowText = new byte[512]; 

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

Sie werden wahrscheinlich die richtige Struktur-Mappings für HWND verwenden möchten, und auch Unicode-Unterstützung ermöglichen; Sie finden diese Informationen und weitere Beispiele dazu, wie Sie das unter JNA website tun können.

Die Dokumentation zur GetWindowText-Funktion finden Sie hier unter MSDN.

Dokumentation für JNA ist bei jna.dev.java.net

+8

zur Verfügung, wie kann ich einen Fenstergriff bekommen? – Synox

Verwandte Themen