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.
 
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?
 
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.

Neue Themen


Zurück
Oben