JNIRegistry bedienen, ich blick's nicht?

Status
Nicht offen für weitere Antworten.

MPW

Top Contributor
Moin zusammen,

da das hinzufügen eines RegistryValues ja nicht so ganz einfach zu sein scheint,
bzw. schlichtweg ohne Kommentar nicht funktinoiert:

http://www.java-forum.org/de/viewtopic.php?t=22367&start=15

Hab' ich mich jetzt entschlossen, soetwas einfach mit JNIRegistry direkt zu machen:

Code:
	void registryValueErzeugen() {
		RegistryKey rk = new RegistryKey(0, "HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Windows//CurrentVersion//Run", true);
		try {
			RegStringValue rv = new RegStringValue(rk, "prison", "javaw C://Programme//Java//progs//Fenster//Fenster");
			rk.setValue("prison", rv);
		} catch (RegistryException e) {
			System.out.println(e);
		}


	}

Aber das führt immer zu fehlern, alles was ich will, ist in den Autostartordner eine Referenz auf

javaw C:\Programme\Java\progs\Fenster\Fenster

erzeugen.

Danke für Tipps.
 

MPW

Top Contributor
Moin nochmal,

also ich hab' jetzt noch ein bisschen rumprobiert, und bin auf den Code gekommen:

Code:
		String topLevelKey = "HKLM";
		RegistryKey topKey = Registry.getTopLevelKey(topLevelKey);
		try {
			RegistryKey localKey = topKey.openSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");

			RegistryKey autostart = localKey.createSubKey("prison", "javaw C:\\Programme\\Java\\progs\\Fenster\\Fenster", RegistryKey.ACCESS_WRITE);

			RegStringValue rv = new RegStringValue(localKey, "prison", "javaw C:\\Programme\\Java\\progs\\Fenster\\Fenster");
			localKey.setValue("prison", rv);


		} catch (NoSuchKeyException e) {
			System.out.println(e);
		} catch (RegistryException e) {
			System.out.println(e);
		}

Aber jetzt krieg' ich ein AccessDenied:

Code:
com.ice.jni.registry.RegistryException: Registry API Error 5, 'access denied' -
'RegSetValueEx()'
Drücken Sie eine beliebige Taste . . .

Warum geht das denn nicht? Ich bin doch Administrator, kann es sein, dass ein Programm das garnicht darf, was ich hier versuche?
 

MPW

Top Contributor
Hab's jetzt doch hingekriegt, man muss das mit Erlaubnis öffnen, wenn's wen interessiert:

Code:
	void registryValueErzeugen() {
		String topLevelKey = "HKLM";
		RegistryKey topKey = Registry.getTopLevelKey(topLevelKey);
		try {
			RegistryKey localKey = topKey.openSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion");

			RegistryKey autostart = localKey.openSubKey("Run", RegistryKey.ACCESS_WRITE);

			RegStringValue rv = new RegStringValue(localKey, "prison", "javaw C:\\Programme\\Java\\progs\\Fenster\\Fenster");
			autostart.setValue(rv);


		} catch (NoSuchKeyException e) {
			System.out.println(e);
		} catch (RegistryException e) {
			System.out.println(e);
			e.printStackTrace();
		}
	}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben