![]() |
Datei mit Programm via Popupmenü in Windows öffnen.
Also ich habe (weil mir gesternabend langweilig war :lol:) mal ein bisschen in der Registry rumgestöbert und in der HKEY_CLASSES_ROOT paar interesante sachen gefunden:
Source um bei einer Textdatei bei rechtsklick in das Popup einen bsp. "Mit meinem Editor bearbeiten..." Eintrag hinzufügen:
Delphi-Quellcode:
Kurze Erklärung:
uses Registry;
... procedure AddOpenEntry(filetype, registryname, popupname, OpenWith: String); var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; Reg.OpenKey(filetype + '\shell\' + registryname + '\', True); Reg.WriteString('', popupname); Reg.CloseKey; finally Reg.Free; end; Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; Reg.OpenKey(filetype + '\shell\' + registryname + '\command\', True); Reg.WriteString('', '"' + OpenWith + '" "%1"'); Reg.CloseKey; finally Reg.Free; end; end; filetype ist ein String der den Typ der Datei angibt. Bsp: Textdatei: txtfile Für andere Typen einfach bisschen in der HKEY_CLASSES_ROOT stöbern... registryname ist der String unter dem der Eintrag in der Registry gespeichert wird popupname ist der String der beim Benutzer sichtbar ist wenn er rechts auf die Datei klickt: Bsp: Mit meinem Programm bearbeiten... OpenWith ist dann der VOLLSTÄNDIGE Dateiname zum Programm, das geöffnet werden soll. Wenn man den Eintrag wieder Löschen will:
Delphi-Quellcode:
Und zu guter letzt hab ich noch etwas um eine Datei durch Doppelklick zu öffnen:
uses Registry;
... procedure DeleteOpenEntry(filetype, registryname: String); var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; Reg.DeleteKey(filetype + '\shell\' + registryname +'\'); Reg.CloseKey; finally Reg.Free; end; end;
Delphi-Quellcode:
uses Registry;
... procedure SetOpen(filetype, OpenWith: String); var Reg: TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CLASSES_ROOT; Reg.OpenKey(filetype + '\shell\open\command\', True); Reg.WriteString('', '"' + OpenWith + '" "%1"'); Reg.CloseKey; finally Reg.Free; end; end; So fertig... Hoffe ihr könnt was damit anfangen... Wenn das Prog geöffnet wird erhaltet iht durch ParamStr(1) den Dateinamen der zu öffnenden Datei. mfg Tobi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz