hier ist die function zum registrieren des programmes:
Delphi-Quellcode:
function InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: String; IconIndex: Integer): Boolean;
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey(Extension, True);
WriteString('', ExtDescription);
OpenKey('\' + ExtDescription, True);
WriteString('', FileDescription);
OpenKey('DefaultIcon', True);
WriteString('', OpenWith + ','+IntToStr(IconIndex));
OpenKey('\' + ExtDescription + '\Shell\Open\Command', True);
WriteString('', '"' + OpenWith + '" "' + ParamString + '"');
end;
Result := True;
except
Result := False;
end;
Reg.Free;
end;
Und so rufe ich die funktion auf:
InstallExt('.pcm', 'PCM-Datei', 'Personal Contact Manager', Application.ExeName, '%1',0);
und
Delphi-Quellcode:
if ParamCount>0 then
... //der ablauf zum öffnen
hier ist die prozedur zum öffnen:
Delphi-Quellcode:
procedure TFormHaupt.Oeffnen1Click(Sender: TObject);
var
F: TStringList;
i: Integer;
ini : TInifile;
slKeyNumbers : TStringList;
KeyNumber : Integer;
begin
F := TStringList.Create;
try
begin
if OpenDialog1.Execute then
begin
ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'\files.ini');
try
slKeyNumbers := TStringList.Create;
try
ini.ReadSectionValues('files', slKeyNumbers);
KeyNumber := slKeyNumbers.Count;
if slKeyNumbers.Count = 4 then
begin
ini.DeleteKey('files', '0');
ini.WriteString('files', '0', OpenDialog1.FileName);
end
else
ini.WriteString('files', IntToStr(KeyNumber), OpenDialog1.FileName);
finally
slKeyNumbers.Free;
end;
finally
ini.Free;
end;
end;
begin
person.datei:=opendialog1.filename;
if person.datei='' then begin end else
begin
FormHaupt.Caption:= 'Personal Contact Manager - '+ChangeFileExt(ExtractFileName(opendialog1.FileName),'');
F.LoadFromFile(OpenDialog1.FileName);
StringGrid1.RowCount := StrToInt(F[0]);
StringGrid1.ColCount := StrToInt(F[1]);
for i := 0 to (StringGrid1.RowCount - 1) do
StringGrid1.Rows[i].CommaText := F[i + 2];
end;
end;
end;
finally
F.Free;
end;
begin
end;
end;
aber irgentwie funktioniert das mit dem öffnen noch nicht so ganz...
auch wenn ich das mit dem opendialog wegnehme, sagt er beim versuch das programm über eine datei zu öffnen: "Datei kann nicht geöffnet werden. System kann den angegebenen Pfad nicht finden"
wo steckt da der fehler?
Gruß, dopeline