Avatar billede trolle Nybegynder
29. maj 2001 - 12:44 Der er 9 kommentarer og
1 løsning

Registrerings databasen i win 2k

Er det muligt med et java program, at ændre i registrings databasen? (I win 2k)
Stedet jeg gerne vil ændre er:
[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Desktop/General/Wallpaper]
Kan det lade sig g\'re, og hvordan?
Avatar billede delbing Nybegynder
29. maj 2001 - 12:52 #1
Umiddelbart kan java ikke klare den slags systemspecifikke ting, men hvis du kan gøre det fra kommandoprompten kan du bruge

Runtime.getRuntime().exec(\"mycommand\");

Avatar billede logical Nybegynder
29. maj 2001 - 12:52 #2
Ikke direkte. men typisk kan du lave en .reg fil og kalde regedit med den.

En .reg-fil ser nogenlunde sådan ud (lavet af hukommelsen):
REGEDIT4

[HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\\Desktop\\General]
\"Wallpaper\"= \"C:\\temp\\paper.bmp\"

Den kan du indlæse ved at kalde regedit med filnavnet.
Avatar billede lbhansen Nybegynder
29. maj 2001 - 13:10 #3
Hvis regedit er sat til at håndtere .reg filer, så kan du kombinere de to ovenstående forslag,
og lave .reg filen selv, og så Runtime.getRuntime().exec(\"dinRegFil\");
Avatar billede delbing Nybegynder
29. maj 2001 - 14:04 #4
Du mener vel

Runtime.getRuntime().exec(\"regedit dinRegFil\");
Avatar billede lbhansen Nybegynder
29. maj 2001 - 14:16 #5
delbing > Nej, når man prøver på at eksekvere en
fil i windoze, og den ikke er eksekvérbar, så vil
den selv åbne den application der er tilknyttet filer med den extension.

Du kan selv prøve at lave en cmd, og så prøve at eksekvere en html fil, så åbner den explorer
Avatar billede delbing Nybegynder
29. maj 2001 - 14:33 #6
Nu havde din fil jo ingen extension...
Jeg kunne gå med til:
Runtime.getRuntime().exec(\"dinRegFil.reg\");

Forresten så ville Opera åbnes når jeg eksekverer en html fil - man skal huske at tage med at brugeren måske har ikke-standard filtypeassociationer. Hvis jeg arbejdede med .reg-filer kunne jeg fx sagtens forestille mig at jeg associerede dem med en texteditor i stedet for regedit.
Avatar billede lbhansen Nybegynder
29. maj 2001 - 14:37 #7
Derfor startede jeg også med at skrive min kommentar \"Hvis regedit er sat til at håndtere .reg filer\" :)
Avatar billede delbing Nybegynder
29. maj 2001 - 14:45 #8
<pedantisk>
Med den fil du gav med som argument til exec() var ikke en .reg fil :)
</pedantisk>
Avatar billede mpultz Nybegynder
30. maj 2001 - 18:30 #9
Microsoft har lavet Java klasser der giver dig mulighed for at tilgå registreringsdatabasen. Download MS SDK for Java 4.0 på http://www.microsoft.com/java/. Kig bl.a. mere på Registry klassen i pakken com.ms.wfc.app. Se http://www.jguru.com/faq/view.jsp?EID=94779 for et eksempel (her læsning).
Avatar billede mpultz Nybegynder
30. maj 2001 - 20:33 #10
Ja, der er faktisk flere muligheder, se f.eks. også JNIRegistry på http://www.trustice.com/java/jnireg/. Man er ikke bundet fra at lave OS specifikke ting bare fordi man programmerer i Java. Man har altid muligheden for at kalde native kode vha. JNI (Java Native Interface). Ovenstående muligheder, i hvert fald JNIRegistry, benytter da også JNI.

Måske er du bundet til MS JVM hvis du bruger klasserne i com.ms.wfc.app, men JNIRegistry skulle virke med alle JVM implementationer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester