# Registry mit jRegistryKey auslesen



## Mark1 (14. Sep 2005)

Hi zusammen,

ich möchte aus meinem Programm heraus die IP-Adresse in der Registry ändern (Win2000 u. WinNT).
Dazu verwende ich die Klasse jRegistryKey. In der Registry steht die IP als "REG_MULTI_SZ" formatiert.
Andere Typen (z.B. REG_SZ (normaler String)) kann ich bearbeiten, kann mir jemand einen Tipp geben,
warum das mit dem Typ "REG_MULTI_SZ" nicht funktioniert?
Hier mal mein bisheriger Ansatz:



```
try{
    RegistryValue v5 = new RegistryValue("IP-Address", ValueType.REG_MULTI_SZ, "192.168.168.168");
    r4.setValue(v5);
    System.out.println("IP-Adresse (test) erstellt!");
    }
    catch(RegistryException re)
    {}
```


Gruß!


----------



## Gast (15. Sep 2005)

das ist zu riskant,
an der egistry sollte man nicht mit native case-striking operieren
würde ich sagen


----------



## m0rph (15. Sep 2005)

Hi,

tippe mal, da fehlt was. Mein (funktionierendes Beispiel zum setzen eines Entry)


```
RegistryKey n = new RegistryKey(RootKey.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings");
		    	RegistryValue v = new RegistryValue("AutoConfigURL",ValueType.REG_SZ, "http://proxy.proxydomain.net/wpad.dat");
		    	if (n.exists()) n.setValue(v);
```


----------



## Mark1 (15. Sep 2005)

Das Problem ist, dass ich einen Wert vom Typ "REG_MULTI_SZ" bearbeiten möchte. Hast du dazu auch ein Beispiel? Einen mit REG_SZ bekomm ich auch schon hin.
Aber danke erstemal.


----------



## KSG9|sebastian (15. Sep 2005)

du willst die ip deines rechners ändern ? winxp ?


```
cmd
netsh interface ip

set ...
```


----------



## Mark1 (15. Sep 2005)

nein, das Programm soll unter Win2000 und WinNT laufen.


----------



## KSG9|sebastian (15. Sep 2005)

ups^^


----------



## Mark1 (19. Sep 2005)

Also bin jetzt selbst draufgekommen.
Wenn ein Eintrag vom Typ "REG_MULTI_SZ" geändert oder erstellt werden soll, müssen die Daten in einem String-Array stehen.
Hier ein Beispiel zum Ändern der IP unter Win2000:


```
String[] array=new String[]{"d"};
array[0]="192.168.168.168";
RegistryKey rIP = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{xxxxx}");    // Der letzte Unterordner ({xxxxx}) ist von Rechner zu Rechner anderst
RegistryValue vIP = new RegistryValue("IPAddress_test", ValueType.REG_MULTI_SZ, array);
rIP.setValue(vIP);
```

Ich hoffe, ich konnte noch jemanden helfen!


----------

