AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Dateien / Laufwerke Delphi Datei mit Programm via Popupmenü in Windows öffnen.

Datei mit Programm via Popupmenü in Windows öffnen.

Ein Thema von EDatabaseError · begonnen am 10. Jun 2006
Antwort Antwort
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#1

Datei mit Programm via Popupmenü in Windows öffnen.

  Alt 10. Jun 2006, 08:29
Also ich habe (weil mir gesternabend langweilig war ) 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:
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;
Kurze Erklärung:
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:
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;
Und zu guter letzt hab ich noch etwas um eine Datei durch Doppelklick zu öffnen:
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
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz