Dateityp anlegen

zerix

Hausmeister
Moderator
Hallo!

Ist es möglich mit Java in Windows Dateitypen anzulegen, mit icon und Programm mit dem die datei geöffnet werden soll? Wenn es möglich ist, könnte mir da einer helfen?
 
Also dazu musst du in die Registry gehen. Wie das geht kann ich dir nicht sagen, aber Registrybearbeitung war hier schon öfter mal ein Thema. Also am besten mal danach suchen. ;)
 
Ist Recht einfach.. Folgendes ist nötig:

Ein Schlüssen mit dem Namen der Dateiendung in HKEY_CLASSES_ROOT, z.B.

.meineEndung

In dem muss der Standartwert auf einen Verweis stehen wo weitere Infos gespeichert sind, wir nehmen einfach

meineEndung.File

Dann muss noch ein neuer Schlüssel angelegt werden, mit dem Wert den wir gerade als Standartwert eingetragen haben. Darunter werden noch weiter Schlüssel erzeugt, so dass es so aussieht:

Code:
meineEndung.File
   |--- shell
	  |--- open
		 |--- command

Der Defaultwert von command muss dann auf das Programm gesetzt werden, z.B. für Notepad:

C:\windows\notepad.exe "%1"

%1 ersetzt Windows mit dem Dateinamen, so dass das Programm ihn als Parameter übergeben bekommt.

Für das Icon legst du noch im Schlüssen meineEndung.File einen Schlüssel mit dem Namen

DefaultIcon

an und gibst ihm als Standartwert das Icon. (Kann auch ein Icon in einer exe sein, z.B.

C:\Programme\DivX\DivX Player\DivX Player.exe,2

Dann wird das 2. Icon benunzt, dass in die exe eingebunden wurde.

Das ganze noch mal als .reg Datei:

Code:
REGEDIT4
 
[HKEY_CLASSES_ROOT\.meineEndung]
@="meineEndung.File"
 
[HKEY_CLASSES_ROOT\meineEndung.File]
[HKEY_CLASSES_ROOT\meineEndung.File\DefaultIcon]
@="C:\\Programme\\DivX\\DivX Player\\DivX Player.exe,2"
 
[HKEY_CLASSES_ROOT\meineEndung.File\shell]
[HKEY_CLASSES_ROOT\meineEndung.File\shell\open]
[HKEY_CLASSES_ROOT\meineEndung.File\shell\open\command]
@="C:\\windows\\notepad.exe \"%1\""

Um das in die Registry zu schreiben kannst du das benutzen : http://www.trustice.com/java/jnireg/

oder du machst es so, dass du die .reg-Datei über den Befehl
Code:
reg import regFile.reg
importierst.
 
Kann ich eigentlich statt dem pfad zu dem programm einen platzhalter eingeben? es soll nämlich ein java-programm sein und sobald man ja ne neue version installiert stimmt der pfad ja nicht mehr. kann ich dann %JAVA_HOME% oder sowas schreiben?
 
Also ich hab das grad mal probiert, wenn ich
Code:
%windir%\notepad.exe "%1"
schreibe bekomm ich ne Fehlermeldung (s. Anhang)
Was bei mir funktioniert ist das anzugeben:
Code:
notepad.exe "%1"

Wenn das Java-Verzeichnis in der %PATH%-Variablen drin steht sollte es eigentlich gehen..
 

Anhänge

  • dummy.jpg
    dummy.jpg
    14,5 KB · Aufrufe: 26
Zurück