Registry auslesen mit Java

Cherry

Mitglied
Hallo,

ich bin erst seit kurzem hier angemeldet...kenn mich noch nicht so aus ;)

Ich habe einige Probleme beim Auslesen der registry mit Java.
Hier ist der Quelltext:


Java:
import java.util.prefs.*;
import java.lang.ProcessBuilder;
import java.util.Scanner;
public class DruckerAuslesen {
public static void main(String argv[])throws Exception
{
	ProcessBuilder pb= new ProcessBuilder("reg","query", "\"HKEY_CURRENT_USER\\Volatile Environment\\1\"", "/v", "HOMEDRIVE");
	Process p= pb.start();
	Scanner sc= new Scanner(p.getInputStream()).useDelimiter("    \\w+\\s+\\w+\\s+");
	sc.next();
	System.out.println(sc.next());
	
	}
}
Mein Problem ist, dass ich nicht weiß wie die Regex auf den Pfad zugreifen, also welcher Ausdruck zu welchem Pfadabschnitt gehört.
Ich hätte so gedacht, dass \\w+ zu HKEY_CURRENT_USER gehört und \\s+ zu Volatile Environment.
Müsste hier dann nicht auch \w stehen, weil Zeichen auch in dem Abschnitt vorkommen??

Irgendwie hab ich das noch nicht ganz gecheckt:rtfm:

Danke für Eure Antorten!:)
 

Cherry

Mitglied
Danke für die schnelle Antwort!
Ja, soweit hab ich das noch verstanden.
Muss ich dann wenn z. b. in dem Pfadabschnitt, Leerzeichen und Buchstaben drankommen, \w+s schreiben? Oder reicht hier \s, da er auf den anderen Regex von dem vorigen Abschnitt zurückgreift?
 

lumo

Top Contributor
das mit dem auslesen der registry ist so ne sache...
geh mal davon aus, dass das nicht auf jedem pc so funktioniert.
musste mal sowas machen, um daten für einen installer zu sammeln...
leider hats auf einigen systemen gehakt und keine ergebnisse geliefert, obwohl auch auf diesen systemen der value in der registry war...

--> vorsicht mit dem verwenden von registry in java <--

*but thats just my 50 cents*
 

Cherry

Mitglied
Ja, das habe ich auch in mehreren Foren schon gelesen.
Ich wollte das nur grundsätzlich wissen, da ich nicht ganz verstehe, wie die Regex auf den jeweiligen Pfad zugreifen bzw gültig sin.
 

faetzminator

Gesperrter Benutzer
Muss ich dann wenn z. b. in dem Pfadabschnitt, Leerzeichen und Buchstaben drankommen, \w+s schreiben? Oder reicht hier \s, da er auf den anderen Regex von dem vorigen Abschnitt zurückgreift?

[c]\w+s[/c] würde [c]\w+[/c] und [c]s[/c] bedeuten, d.h. es wird [c]+[/c] (1 bis ...) Mal ein [c]\w[/c] verlangt - da gibt es noch [c]?[/c] für 0 bis 1 und [c]*[/c] für 0 bis ... - und danach ein simples [c]s[/c].
Wenn du z.B. eine Mischung aus Trennzeichen ([c]\s[/c]) und Wordchars ([c]\w[/c]) matchen wollen würdest, könntest du das mit [c][\s\w]+[/c] für 1 bis ... Zeichen machen. [c]\w[/c] alleinstehend matcht genau ein Zeichen, welches in der Liste von [c]\w[/c] vorkommt (AFAIK in diesem Fall [c][a-zA-Z_0-9][/c]).
 

Cherry

Mitglied
Danke tuxedo, werde ich mir anschaun.

Aber im Zusammenhang hab ich das mit dem Pfad immer noch nicht kapiert.
Z. B:
Bei: HKEY_Current_User\Control Panel\Current\Color Schemes reicht \\w+[\\w\\s]+\\w+\\s+ um auf das Farbschema zuzugreifen
Jedoch bei: HKEY_Current_User\Printers\Settings\Wizard\Driver Name \\w+\\w+\\w+\\w+\\s+ gibt er folgendes aus:
Name REG_SZ Kyocera FS-1100 KX

Wie muss ich den Regex abändern, dass nur Kyocera FS-1100 KX da steht?
 

Cherry

Mitglied
Hier wäre der Auszug der Klasse von den zwei Registry-Einträgen
Java:
		ProcessBuilder pb1= new ProcessBuilder("reg", "query", "\"HKEY_Current_User\\Control Panel\\Current\"", "/v", "Color Schemes");
		Process p1=pb1.start();
		Scanner sc1= new Scanner(p1.getInputStream());
		sc1.useDelimiter("   \\w+[\\w\\s]+\\w+\\s+");
		sc1.next();
		System.out.println(sc1.next());
		
		ProcessBuilder pb2= new ProcessBuilder("reg", "query", "\"HKEY_Current_User\\Printers\\Settings\\Wizard\"", "/v", "Driver Name");
		Process p2= pb2.start();
		Scanner sc2= new Scanner(p2.getInputStream());
		sc2.useDelimiter("   \\w+\\w+\\w+\\w+\\s+");
		sc2.next();
		System.out.println(sc2.next());
 

faetzminator

Gesperrter Benutzer
Ich benötige ein KSKB. Das hier ist abhängig von der Registry. Gib doch einfach 1:1 den Inhalt von [c].getInputStream().readLine()[/c]. Dann kann man das ProcessBuilder-unabhängig testen.
 

Cherry

Mitglied
Du meinst ich soll dir ein kleines Prog schreiben, aber ohne ProcessBuilder, dass die Datei über InputStreamReader eingelesen wird?
 

faetzminator

Gesperrter Benutzer
Nein, ich will einfach wissen wie die Outputs der beiden Processes aussehen. Ich z.B. habe kein Win und hab deshalb kein [c]reg[/c].

Edit: Dein Code ist zwar im weitesten Sinn ein KSKB, aber es hat eben die Abhängigkeit von [c]reg[/c]. Ein KSKB soll überhaupt keine Abhängigkeiten haben.
 

Cherry

Mitglied
Welche klasse soll ich dann verwenden?
Oder soll ich die Systeminfos einfach irgendwie reinholen?
Was hast du für ein betriebssystem?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Wie mit Jacob die Registry auslesen? Allgemeine Java-Themen 0
K Registry-Zugriff auch einfacher? (ORACLE_HOME auslesen) Allgemeine Java-Themen 3
M Registry mit jRegistryKey auslesen Allgemeine Java-Themen 7
R -jar der Windows-Registry hinzufügen Allgemeine Java-Themen 1
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
M Registry Autostart Eintrag ertstellen mit Java (Runtime.getRuntime().exec()) Allgemeine Java-Themen 0
F Registry Ordner durchlaufen Allgemeine Java-Themen 1
B Installer, der in die Win-Registry schreibt Allgemeine Java-Themen 10
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
E CMD Registry Key für Windows 7? Allgemeine Java-Themen 9
Dit_ Registry, Preferences | Name des Knotens ändern. Allgemeine Java-Themen 2
M Autostart: Registry oder Link? Allgemeine Java-Themen 6
S Problem mit Registry Allgemeine Java-Themen 3
N Registry Pattern Allgemeine Java-Themen 7
P windows registry lesen Allgemeine Java-Themen 3
conan2 Windows-Registry lesen und schreiben Allgemeine Java-Themen 8
A Windows Registry Zugriff Allgemeine Java-Themen 4
M swing und windows registry Allgemeine Java-Themen 11
C REG_BINARY Type in Windows Registry ausgeben ? Allgemeine Java-Themen 4
C Registry schreiben und lesen unter Win XP ? Allgemeine Java-Themen 2
S Zugriff auf Windows-Registry Allgemeine Java-Themen 8
L Input/Output Email mit großer Pdf Anhang auslesen? Allgemeine Java-Themen 5
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
T INI - Einträge auslesen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
O PDF auslesen und verändern, was ist besser iText oder PDFBox ? Allgemeine Java-Themen 9
Robertop Status von Caps- und NumLock auslesen Allgemeine Java-Themen 1
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
G Mac Package auslesen Allgemeine Java-Themen 17
W Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
M verschiedene Dokumente auslesen Allgemeine Java-Themen 1
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
L Dateien richtig auslesen Allgemeine Java-Themen 6
F WireGuard Status auslesen Allgemeine Java-Themen 3
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
N Txt Datei auslesen. Allgemeine Java-Themen 5
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
V EMail, Attachments auslesen von einer Email Allgemeine Java-Themen 0
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
x46 Webseite in Java auslesen Allgemeine Java-Themen 2
M Html Seite auslesen Allgemeine Java-Themen 16
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
B Cookie auslesen Allgemeine Java-Themen 3
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
J Teil einer URL auslesen Allgemeine Java-Themen 13
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
C Atfx mit Hilfe von OpenAtfx auslesen Allgemeine Java-Themen 1
C Position von Pixeln in Bilder auslesen Allgemeine Java-Themen 2
M aktive WLAN Teilnehmer auslesen? Allgemeine Java-Themen 6
X JSONObject auslesen und in HashMap hinterlegen Allgemeine Java-Themen 16
S Kann man mit Java auf einem lokalen PC/Mac Benutzergruppen auslesen und Rechte ändern? Allgemeine Java-Themen 11
C Webseite auslesen Allgemeine Java-Themen 3
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
J Bestimmte Zeile aus Textdatei auslesen Allgemeine Java-Themen 18
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
M Tastatureingabe von Sondertasten auslesen Allgemeine Java-Themen 6
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
U OOP Warum kann ich aus meiner Methode keinen String auslesen Allgemeine Java-Themen 4
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
4a61766120617274697374 PDF iText Wort Koordinaten auslesen Allgemeine Java-Themen 1
KeVoZ_ Bestimmte Zeile aus Console finden & auslesen Allgemeine Java-Themen 2
T Url aus txt Datei auslesen und öffnen? Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
M Input/Output USB Geräteinstanzkennung auslesen Allgemeine Java-Themen 3
W 2D-Grafik Erstellungsdatum JPG direkt aus Header (EXIF) auslesen. Allgemeine Java-Themen 5
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
T Datei Byteweise auslesen Allgemeine Java-Themen 1
T Datentypen MNIST Datenbank auslesen (.gz) Allgemeine Java-Themen 0
T Ini Datei auslesen Allgemeine Java-Themen 3
J Temperatur aus bytes auslesen. Allgemeine Java-Themen 13
I JSoup Class auslesen Allgemeine Java-Themen 1
Bluedaishi Textdateien auslesen Allgemeine Java-Themen 12
T ELM327 OBD2 auslesen Allgemeine Java-Themen 0
D Double aus String auslesen Allgemeine Java-Themen 8
Z Zahlen aus Bild auslesen Allgemeine Java-Themen 1
A interaktives PDF auslesen/auswerten? Allgemeine Java-Themen 0
G Daten aus Website auslesen Allgemeine Java-Themen 7
S CSV Eintrag der nächsten Zeile auslesen funktioniert nicht Allgemeine Java-Themen 8
I Java FX JsonObjekt Children auslesen Allgemeine Java-Themen 23
M RXTX Details auslesen Allgemeine Java-Themen 6
N Input/Output Website Text auslesen und bestimmte Zeilen wiedergeben Allgemeine Java-Themen 4
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
J Wav-Datei aus .jar auslesen Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben