PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : windows registry manipulieren



m0rph
01-09-2005, 12:04
Hi,

ich bin gerade dabei, mit swing eine kleine gui zu basteln. Hierbei sollen beim anklicken eines buttons die proxy settings aktiviert/ deaktiviert werden. betriebssystem ist win2k sp4

jiaei sagt dazu folgendes:http://www.galileocomputing.de/openbook/javainsel3/javainsel_080002.htm#Rxxjavainsel_080002427DieWind owsRegistryverwenden

alles kein problem - implementiert. nur leider klappt das ganze nicht so wirklich:

dies sind meine codezeilen zum setzen bzw. deaktivieren der settings:


Process proc10 = Runtime.getRuntime().exec( "regedit -r C:\\wpad0.reg" );

es gibt zwei .reg files: eine zum setzen, die andere zum deaktivieren der proxy settings:




Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Internet Settings]
"AutoConfigURL"="http://proxy.proxydomain.net/proxy.dat"

leider funktioniert das setzen und das deaktivieren der proxy settings mittels der gui und auch über die .reg-files direkt nicht so ganz.

hat da jemand erfahrungen gemacht?

danke

m0rph

peschmae
01-09-2005, 13:24
Am besten benutzt du wohl eine Bibliothek die Registry-Edit-Funktionen anbietet wie das da: https://sourceforge.net/projects/jregistrykey/

MfG Peschmä

m0rph
01-09-2005, 13:52
hi,

danke - habs mir heruntergeladen und angeschaut. Nur leider verstehe ich nicht ganz, wie ich die Klasse(n) includen kann.

Ich arbeite mit Eclipse.

Schankedön

m0rph

Qudus
01-09-2005, 14:23
... Nur leider verstehe ich nicht ganz, wie ich die Klasse(n) includen kann.

Ich arbeite mit Eclipse.


Window->Preferences
Java->Build Path->User Libraries
New...->(namen eingeben)
neue lib markieren
Add Jars...->(Jar auswählen)

soweit fertig.

Dann Projekt auswählen, rechte Maustaste auf das Projekt->properties
Java Build Path->Libraries->Add Library->User Library
lib auswählen, mit Finish bestätigen

fertig

im code mit import die entsprechenden Pakete einbinden (aber das weist Du sicher)

Gruß, Qudus

sixfriends
01-09-2005, 14:43
Ich würd sagen, es hat nicht geklappt mit dem, was du zunächst versucht hast, weil der switch -r nicht existiert....

Ersetze einfach mal -r durch /s, dann sollte es klappen.

nul
01-09-2005, 17:28
Wartest du auch auf den Prozess, bis er beendet ist?
Process (http://java.sun.com/j2se/1.5.0/docs/api/)

m0rph
02-09-2005, 10:00
Hi,

ein riesen Dank an alle, die mir geholfen haben!

@ Qudus

Dankeschön für die Anleitung!
Ich erhalte nun leider einen "Unsatisfied Link error"


Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: testInitialized

Referenz sagt:


ublic class UnsatisfiedLinkError
extends java.lang.LinkageError

Beschreibung
Dieser Fehler tritt auf, wenn zu einer als native deklarierten Methode keine passende Implementierung gefunden werden konnte.


wat nu? :D

@ sixfriends
lol, danke jetzt klappt es damit. was für ein spass. den parameter habe ich übrigens aus dem online book "java ist auch nur eine insel..."

jetzt möchte ich es nur noch eleganter über den wrapper schaffen...

@ nul

ich hatte es sicherheitshalber rausgenommen, werde es aber wieder einbauen...


ein grosses dankeschön nochmal an alle :)

thx m0rph

peschmae
02-09-2005, 12:32
Ich denke mal bei dem Zeugs ist noch eine DLL dabei die er nicht findet. Wenn du den Ordner wo sie ist der Umgebungsvariable PATH hinzufügst sollte das gehen (kann man wohl auch irgendwo in eclipse speziell für Eclispe machen)

MfG Peschmä

m0rph
02-09-2005, 13:10
hi,

danke für den tipp. ich kann aber leider nur zip und jar files hinzufügen. die mitgelieferte dll kann ich nirgends hinzufügen.... :(

m0rph
05-09-2005, 11:35
hi,

hat denn keiner noch einen tipp für mich?

sorry und danke :D

m0rph

peschmae
05-09-2005, 16:37
Naja, kannst das ja auch ganz allgemein für Windows machen. Für Win2k/XP findest du das Zeugs unter "System" in der Systemsteuerung auf irgend einem der Tabs dort.

MfG Peschmä

m0rph
06-09-2005, 13:29
Hi,

danke - ich habe unter "Environment Variables" unter PATH den Pfad zu einem Ordner angegeben, in dem sich die .dll befindet. Leider erhalte ich immernoch den Fehler.

Im Handbuch von jRegistryKey steht:

jRegistryKey.jar is the Java™ Archive (JAR) file containing the packaged Java™ class files, whereas jRegistryKey.dll is a Windows® dyanmically linked library (DLL) that contains the native (C/C++) code required to access the registry.

jRegistryKey.jar must be included in the CLASSPATH available to the Java™ Virtual Machine (JVM); jRegistryKey.dll must be located in a directory included in the Windows® PATH environment variable or java.lang.UnsatisfiedLinkError's will be generated.

Ich bin momentan ziemlich ratlos :confused:

peschmae
06-09-2005, 15:39
Ich auch.

Bist du sicher das sdas auch wirklcih richtig gesetzt ist? Guck mal nach in einer Konsole (Start|Ausführen cmd) - dort set eingeben und gucken was bei PATH steht.

MfG Peschmä

m0rph
07-09-2005, 11:29
Hi,

es funktioniert jetzt! Allerdings ging es nicht mit einem Eintrag in der Umgebungsvariable "Path".

Ich habe einen der Projekt-Admins kontaktiert. Dieser gab mir den Tipp, in Eclipse einen Standard-Parameter zum Laden der DLL einzutragen.

Dies geht mit: Window--> Preferences-->Java-->Installed JREs-->gew. JRE markieren und auf "Edit" klicken-->in "Default VM Arguments" folgende Zeile eintragen: -DjRegistryKey.lib=C:\path.to\jRegistryKey.dll

Ich hoffe mal, dass damit künftige Probleme mit dem Laden der .dll anderer behoben/ vermieden werden.

Danke an alle Beteiligten!

cu
m0rph