Geschrieben von jedi am 04.06.2005, 13:04

Also als erstes Mal benötigt ihr ein Formular, mit einem Button! Wenn der Benutzer dann auf diesen Button klickt, sollen die Dateitypen, die euer Programm benutzt für euer Programm registriert werden.

Zunächst müsst ihr die Uints Windows und Registry, sowie Math und SysUtils der Uses-Klausel hinzufügen (falls nicht schon vorhanden). Dann müsst ihr eine neue Prozedur erstellen, benennt sie am besten Register_<Euer Dateiname>.

[quote]
Procedure Register_Test;
var
regist : TRegistry;
Currentdir1 : String;
begin
regist := TRegistry.Create;
CurrentDir1 := GetCurrentDir;
try
regist.RootKey := HKEY_CLASSES_ROOT;
{Einen neuen Schlüssel mit <Euer Dateiname> anlegen}
regist.OpenKey('.<Euer Dateiname>', TRUE);
regist.WriteString('', '<Euer Dateiname>file');
regist.CloseKey;
{Einen neuen Schlüssel mit <Euer Dateiname>file anlegen
regist.OpenKey('F1Teamfile', TRUE);
{Beschreibung für <Euer Dateiname> Dateien}
regist.WriteString('', <Euer Programm> - <Euer Dateiname> Datei');
regist.CloseKey;
{DefaultIcon für <Euer Dateiname> Dateien}
regist.OpenKey('<Euer Dateiname>file\DefaultIcon', TRUE);
regist.WriteString('', CurrentDir1 +'<Icon Datei>,0'); {Die Icon Datei muss im selben Verzeichnis wie Eure Programm.exe Datei sein}
regist.CloseKey;
{Eintrag zum öffnen mit <Euer Programm> einfügen}
regist.OpenKey('<Euer Dateiname>file\shell\open', TRUE);
regist.WriteString('', 'Öffnen mit <Euer Programm>');
regist.CloseKey;
{Parameter zum Öffnen}
regist.OpenKey('<Euer Dateiname>file\shell\open\command', TRUE);
regist.WriteString('', '"' + CurrentDir1 + '\<Euer Programm>.exe' + '"' + ' +<Euer Dateiname>' + ' %1'); { %1 ist eine Funktion, die den kompletten Pfad zu der Datei, die ihr öffnet zurückgibt}
regist.CloseKey;
finally
regist.Free;
end;
end;
[/code]

Ihr könnt diesen Code einfach kopieren und in eurer Unit an der entsprechenden Stelle einfügen, ihr müsst nur die in <> gesetzten Einträge ersetzen.

Als letztes müsst ihr nur noch diese Prozedur bei dem OnClick Ereignis des Buttons ausführen, oder an irgenteiner Stelle in eurem Programm.

Bei Fragen einfach PN an mich!

Bewertung Anzahl