Moin Maximi,
falls Du schon mal einen Blick in die Registry geworfen hast, wird Dir vielleicht der Key HKEY_CLASSES_ROOT aufgefallen sein.
In diesem sind, u.a., alle bislang registrierten Datentypen verzeichnet.
Als erstes brauchst Du einen Eintrag für Deinen Typen als .mon
HKEY_CLASSES_ROOT\.mon
hierin wird jetzt ein Standardwert (String) erzeugt (als Name muss ein Leerstring verwendet werden) der als Key für die weiteren Informationen dient, z.B. maximimonfile.
Dieser Wert wird jetzt auch als Key unter
HKCR angelegt, so dass Du
HKEY_CLASSES_ROOT\maximimonfile
als Key hast.
Unter diesem Key werden jetzt die eigentlichen Informationen gespeichert. Da Du ein eigenes Icon benötigst musst Du einen Key DefaultIcon erzeugen, und hier als Standardwert den Pfad zu der Datei angeben, die das Icon enthält, sowie die Iconnummer (null basiert) in dieser Datei, abgetrennt mit einem Komma.
Ausserdem muss unter maximimonfile noch eine Keystruktur angelegt werden, so dass Du hinterher
HKEY_CLASSES_ROOT\maximimonfile\shell\open\command
hast.
In dem command Key wird nun wieder ein Standardwert angelegt, der den Pfad zu Deinem Programm (eingeschlossen in ") gefolgt von einem Blank und "%1" enthält, damit nicht nur das Programm gestartet, sondern auch ein Parameter übergeben wird.
Wichtig sind die doppelten (!) Anführungsstriche, damit eventuelle Blanks im Pfad nicht zu unangenehmen Überraschungen führen.
Alle Standardwerte die hier einzutragen sind, sind Strings.
Fertig sähe dass dann so aus:
HKEY_CLASSES_ROOT\.mon
Wertname: ''
Wert : maximimonfile
HKEY_CLASSES_ROOT\maximimonfile\DefaultIcon
Wertname: ''
Wert : "C:\Pfad\zu\der\Datei\mit\dem\Icon\Monopoly.ex e",0
HKEY_CLASSES_ROOT\maximimonfile\Shell\Open\Command
Wertname: ''
Wert : "C:\Pfad\zu\der\Datei\mit\dem\Icon\Monopoly.ex e" "%1"
Man kann natürlich noch eine Ganze Menge mehr in diesem Bereich tun, aber für den von Dir genannten Zweck reicht das hier schon.
Weitere Einzelheiten kannst Du im
PSDK oder auf
MSDN unter
Shell Basics: Extending the Shell, Creating a File Association
nachlesen.