[Java] JNI Windows & OS X

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von fragl0r, 30. Mai 2012 .

Schlagworte:
  1. 30. Mai 2012
    JNI Windows & OS X

    Moin!

    Ich brauche Informationen über mein System, an die ich mit reinem Java leider nicht rankomme...

    Ich brauche:
    - alle offenen Fenster/Programme,
    - deren Positionen,
    - ich will sie minimieren, maximieren können,
    - und den Focus wechseln.

    Das muss ich doch mit sicherheit nicht selber schreiben, sondern kann das entsprechende System von Haus aus?! Hat mir da jemand ein paar Tipps? Kenne mich ausserhalb von Java nicht besonders gut aus...


    greetz fragl0r
     
  2. 30. Mai 2012
    Zuletzt bearbeitet: 30. Mai 2012
    AW: JNI Windows & OS X

    import com.sun.jna.Native;
    import com.sun.jna.Structure;
    import com.sun.jna.win32.StdCallLibrary;

    für die jeweiligen funktionen kannst du google bemühen.

    erst nach "windows.h + 'vorhaben'" suchen (dann landest du meist auf msdn) und dann beispiel-code (c/c++) entsprechend mit JNI.win32 umsetzen.

    nativ:
    Code:
    EnumWindows(callback, NULL);
    jni:
    Code:
    User32.instance.EnumWindows(WndEnumProc callback);
    ob es für osx (cocoa / ns foundation) was vergleichbares gibt weiß ich nicht.
     
    1 Person gefällt das.
  3. 30. Mai 2012
    AW: JNI Windows & OS X

    Das bringt mich schonmal ein großes Stück weiter, danke!

    Hoffe es weiss jetzt noch jemand was zu OS X.


    greetz fralg0r
     
  4. 30. Mai 2012
    Zuletzt bearbeitet: 30. Mai 2012
    AW: JNI Windows & OS X

    mal ne schnelle Frage:

    Was bedeutet auf msdn vor den Parametern

    __in
    __out
    __opt
    __inout

    greetz

    Edit:
    Hab was gefunden,
    out: nur die Referenz wird übergeben.
    in: Wert wird übergeben
    right?
     
  5. 30. Mai 2012
    AW: JNI Windows & OS X

    in input, out output, inout input/output, opt optional -> für faule die den API Beschreibungstext nicht lesen wollen.


    Ich glaube das ist bei OS X überhaupt nicht möglich. Aber falls es möglich wäre, dann nur über C/C++. Die beste Lösung ist: eine JNI DLL für Windows und eine JNI SO für OS X zu programmieren. Dadurch bleibt auch dein Java Code Plattformunabhängig. Wenn du mit JNA rummachst ist eben dein Java Code nicht mehr Plattformunabhängig und dadurch ist das Hauptfeature von Java "weg".
     
    1 Person gefällt das.
  6. 30. Mai 2012
    AW: JNI Windows & OS X

    Erstmal Danke für deine Antwort. Das ist auch der Plan. Aber da ich das Programm auf beiden OS nutzen will und das JNI nicht der größte Teil ist, werde ich das in Java schreiben.

    greetz fragl0r
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.