Inhalt
1. AUFGABENSTELLUNG 3
Registry Abfrage mit Java (JNI) 3
Grundlage. 3
Aufgabe 3
Testkriterien 3
2. LÖSUNG 3
Allgemeine Lösungsreihenfolge 3
Das Java-Programm 4
Erläuterung. 4
Quelltext. 5
Die C - Dynamic Link Library 6
ADVAPI32.DLL 6
long RegOpenKeyEx() 6
long RegCLoseKey() 7
long RegEnumKeyEx() 7
long RegQueryValueEx() 8
long RegCreateKeyEx() 8
long RegSetValueEx() 9
Erläuterung. 9
void GetAlleErweiterungen() 9
void neuerKey() 10
long getErweiterung () 12
long getUserKey () 13
Quelltext. 14
Header 14
CPP-Datei. 14
3. ALLGEMEINE HINWEISE 16
4. QUELLEN 17
5. SOFTWARE 17
2
1. Aufgabenstellung
Registry Abfrage mit Java (JNI)
Grundlage
Die Registry ist unter Windows Betriebsystemen ein wichtiges Element, um Statusinformationen zu speichern und zu laden.
Aufgabe
Erstellen Sie ein Java-Programm, welches die Registry-Einträge bzgl. der Verknüpfungen verwaltet. Da dies direkt aus Java nicht möglich ist erstellen sie eine Dynamic Link Library (DLL) in C / C++, die Ihnen entsprechende Methoden zur Verfügung stellt, und greifen Sie mit Hilfe des Java Native Interface darauf zu.
Testkriterien
Erstellen Sie ein Java-Programm, welches folgende Eigenschaften besitzt:
• Einlesen einer Eingabemaske, es werden alle Extension mit den dazugehörigen Programmen aufgelistet
• Eintragen einer neuen Verknüpfung
2. Lösung
Allgemeine Lösungsreihenfolge
Um diese Aufgabe zu lösen musste erst einmal ein Java-Quellcode erstellt werden. Dieser baut die geforderte Eingabemaske auf und ruft dann entweder eine Methode zum ausgeben der einzelnen Erweiterungen mit ihren zugehörigen Programmen oder eine Methode zum erstellen eines Eintrags einer Erweiterung in die Registrierung auf. Diese Methoden werden als native Methoden deklariert. Der
Quelltext wird dann durch den Java-Compiler compiliert. Mit Hilfe des javah- Programms wird nun eine Header-Datei erzeugt, die bereits eine Deklaration der vorher als nativ deklarierten Methoden enthält. Mit Hilfe eines Programms zum Erstellen von Dynamic Link Librarys wird nun in dieser DLL die Implementierung der Methoden vorgenommen.
Die Implementierung erfolgt mit Hilfe von Zugriffen auf API-Funktionen. Die von Windows bereitgestellte ADVAPI32.DLL stellt diverse Funktionen für den Zugriff auf die Registrierung bereit. Diese Funktionen werden später noch weiter spezifiziert.
3
Das Java-Programm
Erläuterung
Im Quelltext werden zuerst die nativen Methoden deklariert:
Damit der Java-Compiler erkennen kann, wo diese Methoden implementiert sind muss mit Hilfe der Funktion System.loadLibrary(String) die entsprechende Bibliothek aufgerufen werden. Dieser Aufruf muss als static deklariert sein, damit die Bibliothek schon vor dem Programmstart geladen wird.
Um den späteren Zugriff auf die Methoden etwas zu erleichtern und um auch sämtliche Komponenten der Klasse Environment nutzen zu können wird nun in der Methode public static void main (String[]) ein Object der Klasse erstellt mit dem das eigentliche Programm als Methode public void mainProg (String[]) aufgerufen wird.
Die Implementierung des Programms erfolgt nun in der Methode public void mainProg (String[]). Es wird als erstes eine Variable int choose festgelegt in der dann die spätere Menueauswahl des Benutzers gespeichert wird. Dem Benutzer wird dann in einer Ausgabe kurz die Aufgabe des Programms erklärt.
Danach wird die Eingabemaske mit diversen System.out.println(String) -Befehlen aufgebaut und um die Auswahl gebeten. Diese wird in choose gespeichert.
4
Auf Basis der Auswahl wird mit verschiedenen if - Anweisungen festgelegt wie fort gefahren wird. Für den Fall, dass eine neue Erweiterung eingetragen werden soll werden sowohl die Erweiterung als auch das entsprechende Programm von der Konsole eingelesen und in den Variablen String erw und String path gespeichert. Sollte die Variable erw leer sein wird keine neue Erweiterung eingetragen. Beide Variablen werden für den Fall, dass erw nicht leer ist an die native Methode zum Erstellen eines neuen Keys public native void neuerKey(String ext, String path) übergeben und diese Methode aufgerufen.
Sollen jedoch nur alle bereits vorhandene Erweiterungen aufgelistet werden wird die Methode public native void getAlleErweiterungen() dafür aufgerufen.
Der Aufbau der Eingabemaske und das darauf folgende Einlesen und entsprechende Reagieren wird solange wiederholt, bis der Benutzer ausgewählt hat das Programm zu beenden. Daraus ergibt sich nun der gesamte Quelltext.
Quelltext
5
Arbeit zitieren:
Patrick Harms, 2002, Windows Registry Abfrage mit dem Java Native Interface, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Patrick Harms hat den Text Windows Registry Abfrage mit dem Java Native Interface veröffentlicht
Patrick Harms hat einen neuen Text hochgeladen
Cracking Windows Phone and Blackberry Native Development: Cross-Platfo...
Matthew Baxter-Reynolds
0 Kommentare