Autor |
Beitrag |
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Di 10.11.09 21:04
Dann schlage ich an dieser Stelle vor, dass in solchen Fällen evtl. die Lösungen nochmal zum Abschluss gepostet werden, denn ich persönlich bin nicht draus schlau geworden.
Aber wie dem auch sei:
Ich möchte mich nochmal eben für meine forsche Antwort entschuldigen, die ich Xentar gab.
Terra
_________________ Hasta La Victoria Siempre
|
|
Bergmann89 
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Mi 11.11.09 08:24
Wo hast du denn noch Probleme? Mit den Leerzeichen in dem String? Das hab ich auch net anders gelöst als du: einfach mit ner Schleife zusammenstückeln...
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 11.11.09 11:35
Das ist gar nicht notwendig, wenn die in Anführungszeichen stehen. Dann wird das komplett in einem Parameter übergeben.
Das Problem in diesem Fall war, dass nicht nur einmal welche hinzugefügt wurden, sondern zweimal. Also ""%1"", so dass es wieder nicht ging. Mit "%1" in der Registry klappt es auch.
|
|
Terra23
      
Beiträge: 872
Win 8
Delphi 7
|
Verfasst: Mi 11.11.09 11:52
jaenicke hat folgendes geschrieben : | Das ist gar nicht notwendig, wenn die in Anführungszeichen stehen. Dann wird das komplett in einem Parameter übergeben.
Das Problem in diesem Fall war, dass nicht nur einmal welche hinzugefügt wurden, sondern zweimal. Also ""%1"", so dass es wieder nicht ging. Mit "%1" in der Registry klappt es auch. |
Das Problem an sich war, dass der Fehler schon aus dem Eintrag in EasyHelper hervorging.
Für alle, die in Zukunft nach diesem Thread suchen und keine Lösung finden:
Dies ist die Funktion zur Verknüpfung einer Dateiendung mit dem Programm:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| function TForm1.InstallExt(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; end; |
--> Der orangene Teil ist im EasyHelper-Eintrag auch noch in " " geschrieben.
So verknüpft man eine bestimmte Dateiendung mit dem Programm:
Delphi-Quelltext 1:
| InstallExt('.Dateiendung', 'Beschreibung der Dateiendung', 'Beschreibung des Programms', ParamStr(0), '"%1"', 0); |
--> ParamStr(0) gibt den Pfad der EXE zurück, die die Datei ausführen soll; in diesem Fall ist es euer Programm. Die 0 am Ende gibt das Icon eurer Anwendung mit und somit erhalten die registrierten Dateien euer Logo, so wie auch jedes Word-Dokument ein eigenes Symbol hat.
So wertet man die Parameter aus, wenn die Datei z.B. über den Explorer geöffnet wird:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| If ParamCount > 0 Then If FileExists (ParamStr(1) ) Then Begin FileName := ParamStr(1); TueWas mit FileName; End; |
Danke für die Hilfe (auch in meinem Thread) und dann sollte man hier evtl. dann doch schließen, bevor jemand den Thread in einem Jahr nochmal ausgräbt.
Gruß,
Terra
_________________ Hasta La Victoria Siempre
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: Mi 11.11.09 13:02
_________________ PROGRAMMER: A device for converting coffee into software.
|
|
|