Also unter der folgenden
Url
http://www.dsdt.info/tipps/?id=236
habe ich eine Function gefunden, um Dateiendungen in die Registry einzutragen.
So das ganze sieht bei mir jetzt so aus.
Also auf einem Form befindet sich eine Check-List-Box (ClBoxFileAssis) u.A mit folgenden Items:
.mp2
.mp3
.wma
Dan wird bei einem ButtonOnClick das folgende gemacht:
Delphi-Quellcode:
var
I:Integer;
begin
[...]
for I:=0 to CLBoxFileAssis.Items.Count do
if CLBoxFileAssis.Checked[I]
then
mainform.RegistExtension(ClBoxFileAssis.Items[I],ClBoxFileAssis.Items[I] + '-File','PhynPlayer',mainform.pppath + 'phynplayer.exe',ParamStr(0),'"%1"',0);
Dann in TMainform:
Delphi-Quellcode:
function Tmainform.RegistExtension(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer = 0): Boolean;
var
Reg: TRegistry;
begin
Result := False;
if Extension <> '' then
begin
if Extension[1] <> '.' then
Extension := '.' + Extension;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.OpenKey(Extension, True) then
begin
Reg.WriteString('', ExtDescription);
if Reg.OpenKey('\' + ExtDescription, True) then
begin
Reg.WriteString('', FileDescription);
if Reg.OpenKey('DefaultIcon', True) then
begin
Reg.WriteString('', Format('%s,%d', [OpenWith, IconIndex]));
if Reg.OpenKey('\' + ExtDescription + '\Shell\Open\Command', True) then
begin
Reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString]));
Result:=True;
end;
end;
end;
end;
finally
Reg.Free;
end;
end;
Nun erscheint der folgende Fehler:
"Incompatible Types: Integer and String" soweit recht logisch. Aber in diesem Fall weiß ich nicht, was hier falsch ist.
Und dann noch etwas: würden damit beim Aufruf mehrerer Dateien über den Explorer auch
alle Datei-Namen an das Prog übermittelt werden, oder nur einer davon?
Und denn Sinn von
ParamStr(0), '"%1"'
habe ich auch nicht so ganz verstanden
Joa, mal gucken, ob das jemand erklären kann ^^
Naja bestimmt