AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mit Programm öffnen... per doppelklick

Mit Programm öffnen... per doppelklick

Ein Thema von SimonRap · begonnen am 2. Mai 2010 · letzter Beitrag vom 3. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#1

Mit Programm öffnen... per doppelklick

  Alt 2. Mai 2010, 22:32
Hi Leute,
Wiedermal ich:
Ich hab nen Programm, was nen bestimmten (ausgedachten z.B. *.bla) Dateityp öffnen kann, geschrieben...
Ist es möglich über Delphi hinzukriegen? Ich hab davon leider gar keine Ahnung...
Und wie wird das dann abgefragt?
Wird irgendwie die geöffnete Datei mitgeliefert? oder nur der Pfad?
Wie krieg ich das in die Registry??

Viele, Viele Fragen...
Danke schonmal im Voraus

con muchos saludos simon
Simon
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Mit Programm öffnen... per doppelklick

  Alt 2. Mai 2010, 22:58
Du musst dein programm mit dem Dateitypen verknüpfen (wie das geht, weiß ich leider nicht genau - es gibt aber einiges hier im Forum). Wenn du dann soweit bist, wird der Name der geöffneten Datei als Parameter mitgeliefert (geht auch über Rechtsklick auf Datei -> Öffnen mit.. -> Dein Programm). Über ParamCount fragst du ab, wieviele Parameter es gibt. In ParamStr(0) steht der Dateiname (inklusive Pfad) der eigenen Exe, in ParamStr(1) dann der des 1. Parameters - in deinem Fall der der geöffneten Datei (auch inklusive Dateipfad).

Gruß
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#3

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 18:56
ok thx schonmal...
wenn ich jetzt ne neue Forum aufrufe mit checkboxen (für die verschiedenen Dateitypen), wie kann ich dann das über Delphi direkt und nicht von hand hinkriegen?
Also: die Verknüpfung meines Programmes mit den einzelnen Dateitypen

mfg simon
Simon
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 18:58
Schau mal hier
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#5

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:11
jo thx das hab ich gesucht, aber ne fehlermeldung:
er kennt kein TRegistryhttp://simonrap.square7.ch/bla/simon.JPG
weiß jemand warum`?
mfg simon
Simon
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#6

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:14
Du musst "Registry" in die "uses"-Klausel mit aufnehmen.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#7

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:19
ok also hab jetzt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if InstallExt('.SimRap', 'SimRap-Datei', 'Prog by SimonRap', ParamStr(0), '"%1"',0) then
   Showmessage('Dateiendung konnte erfolgreich registriert werden.');
end;

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;
an sich schön und gut... aber er macht nix... als rückgabewert kommt false... warum das?

mfg simon
[edit] also paar sachen hab ich geändert, weil er gemeckert hat:
if Extension '' then -->> if Extension = '' then
if Extension[1] '.' then -->> if Extension[1] = '.' then

könnnte es daran liegen?
[/edit]
Simon
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#8

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:23
Debugg doch mal..
Benutzt du Windows Vista oder höher? Dann versuch mal dein Programm im Explorer mit Rechtsklick->"Als Administrator ausführen" zu starten.

Delphi-Quellcode:
    if Extension[1] ='.then
      Extension := '.' + Extension;
Sollte es nicht <> anstatt = heißen im if?

Und warum
Delphi-Quellcode:
  if Extension='then
  begin
Soll die Erweiterung nur registriert werden, wenn keine angegeben wurde?
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:40
Mir hat das hier schon gereicht
Delphi-Quellcode:
k := Application.ExeName;
reg := Tregistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('Ultimate Zip\Shell\open\',True);
reg.WriteString('','Öffnen mit UZip');
reg.OpenKey('command',True);
reg.WriteString('',k+'"%1"');
reg.CloseKey;
reg.OpenKey('.zip',True);
reg.WriteString('','Ultimate Zip');
finally
reg.Free;
end;
Ist für mein Entpacker.
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#10

Re: Mit Programm öffnen... per doppelklick

  Alt 3. Mai 2010, 19:45
jo danke leute^^
Simon
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 11:27 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