AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zusätzliche Möglichkeit zum Öffnen einer Datei im Explorer
Thema durchsuchen
Ansicht
Themen-Optionen

Zusätzliche Möglichkeit zum Öffnen einer Datei im Explorer

Ein Thema von manfred23 · begonnen am 3. Sep 2008 · letzter Beitrag vom 5. Sep 2008
Antwort Antwort
manfred23

Registriert seit: 29. Aug 2008
Ort: Nürnberg
9 Beiträge
 
Delphi 6 Enterprise
 
#1

Zusätzliche Möglichkeit zum Öffnen einer Datei im Explorer

  Alt 3. Sep 2008, 12:54
Hallo liebe DP Gemeinde,

wenn ich im Explorer mit der rechten Maustaste auf einen Ordner klicke,
dann kommt ein Kontextmenu, wo man etwas auswählen kann.

Die Einträge in der Registry stehen im "Directory".

Wenn ich aber auf eine Datei klicke, wo stehen in der Registry die
Einträge dafür?

Es geht darum, eine zusätzliche Möglichkeit zu haben, eine
Datei mit einem bestimmten Programm zu öffnen, ohne diesen
Dateityp für das Programm registriert zu haben.

Beispiel:

nach dem Rechtsclick auf eine Datei Beispiel.txt erscheint:
-----------
- Open
- Add to Beispiel.zip
- SendTo...
- usw.
-----------

Mit der Open Auswahl startet nun ein Programm, nehmen wir mal
an NotePad.exe, um die Datei anzuzeigen, weil die Extension
.txt eben mit NotePad verknüpft ist.



Ich hätte aber gern, das im ContextMenu folgendes
zusätzlich auftaucht:
-----------
- Open
- Open with My.exe
- Add to Beispiel.zip
- SendTo...
- usw.
-----------

Dann wird die Datei Beispiel.txt mit My.exe geöffnet.
Es soll hier völlig egal sein, welche Extension die ausgewählte
Datei hat, wichtig wäre mir nur, daß es bei jeder Datei
dieses "Open with My.exe" gibt.

Mit freundlichen Grüßen,
Manfred.
  Mit Zitat antworten Zitat
manfred23

Registriert seit: 29. Aug 2008
Ort: Nürnberg
9 Beiträge
 
Delphi 6 Enterprise
 
#2

Vielleicht habe ich die Antwort selbst gefunden

  Alt 3. Sep 2008, 13:17
Vielleicht habe ich die Antwort selbst gefunden..

Ich glaube in der Code-Library was passendes unter
"Kontextmenü einer Datei ergänzen" gefunden zu haben,
aber das bezieht sich auch wieder nur auf bereits
registrierte Dateitypen:((

Mfg, Manfred
  Mit Zitat antworten Zitat
manfred23

Registriert seit: 29. Aug 2008
Ort: Nürnberg
9 Beiträge
 
Delphi 6 Enterprise
 
#3

Lösung gefunden

  Alt 5. Sep 2008, 09:41
Geschafft,

vielen Dank ans DP-Team, in der Code-Library unter Datei mit Programm via Popupmenü in Windows öffnen
http://<br /> <img src="styles/elis...with</a><br />
fand ich die Lösung.

Hierzu noch eine Anmerkung.
Man kann nicht immer davon ausgehen, daß eine z.B. ".txt" Dateiextension auch zu einem "txtfile" Dateityp gehört.
Ich denke da an .bmp das mit Paint.Document verknüpft wurde, oder jeder, der IrfanView verwendet und es mit
Fileextensionen verknüpft hat, kennt die zahllosen Einträge IRFANVIEW.bmp, ... usw.

Deshalb mein Vorschlag, vor dem Aufruf von
Delphi-Quellcode:
procedure AddOpenEntry(filetype, registryname, popupname, OpenWith: String);
{bzw.}
procedure DeleteOpenEntry(filetype, registryname: String);
{findet man beide unter obiger URL}
das erst mal prüfen.

Delphi-Quellcode:
procedure My_AddOpenEntry;
var fExt, fType : string;
    Reg: TRegistry;
begin
{liefert zum obligatorischen ".txt" das richtige d.h. eingetragene "txtfile"}
fExt:='.txt';
fType:='';
Reg:=TRegistry.Create;
try Reg.RootKey:=HKEY_CLASSES_ROOT;
    if Reg.OpenKeyReadOnly(fExt) then fType:=Reg.ReadString('');
    Reg.CloseKey;
finally
    Reg.Free;
end;

{zum Hinzufügen ins Explorer PopupMenü}
{wenn die Extension fExt nicht gefunden wurde, wird nichts "reingehängt"}
if (fType <> '') then
    AddOpenEntry(fType,
                 ExtractFileName(Application.ExeName), {*1*, muß identisch sein mit *2*}
                 'Öffnen mit meiner Anwendung',
                 Application.Exename);

{oder zum Herausnehmen aus dem Explorer PopupMenü}
{wenn die Extension fExt nicht gefunden wurde, wird nichts "rausgenommen"}
if (fType <> '') then
    DeleteOpenEntry(fType,
                    ExtractFileName(Application.ExeName)); {*2*, muß identisch sein mit *1*}

end;
Wichtig, zu guter letzt, das Programm muß den Parameter auslesen können, um auf das ausgewählte
zu öffnende File im Explorer via PopupMenü reagieren zu können. Sinnigerweise beim Starten des
Programms aka Formulars.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
    sfn : string[255]; {SelectedFileName}
begin
sfn:=Paramstr(1); {das klappt mit der Datei "Ausgewählt.txt"}
for i:=2 to ParamCount do sfn:=sfn+' '+Paramstr(i); {und jetzt auch mit Datei "Ausgewählt zum Öffnen.txt"}

{... hier steht dann Euer Code}

end;
Und tschüß.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:44 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