Thema: Delphi registry.....symbole

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 14. Jun 2003, 20:47
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat