AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Datei mit verknüpften Programm öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Datei mit verknüpften Programm öffnen

Ein Thema von Steran · begonnen am 9. Feb 2005 · letzter Beitrag vom 10. Feb 2005
Antwort Antwort
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#1

Datei mit verknüpften Programm öffnen

  Alt 9. Feb 2005, 13:26
Hallo!

Ich will eine Datei mit dem dazugehörigen, registrierten Programm öffnen!
Also wie im explorer ...wenn ich eine MP3 Datei doppelt anklicke, öffnet sich der Winamp!
Wenn ich auf eine Datei doppelklicke, dessen Dateierweiterung in Windows nicht registriert ist, soll der 'Öffnen mit' Dialog erscheinen.

Ist das irgendwie möglich?
Hätte es schon mit
ShellExecute(0,'open','"kompletterpfadzurdatei"',nil,nil,SW_SHOWNORMAL) versucht.

Allerdings passiert hier gar nichts, wenn ich eine Datei mit nicht registrierter Extension öffne.

Mein eigentliches Problem ist, dass ich eine Videodatei mit Videolan öffnen will, der Videolan aber nicht aufspringt (es funzt jedoch, wenn ich im expl. die datei doppelt anklicke)
Mit JPG's etc. funzt es einwandfrei!

Gruß

Steran
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 00:43
Wenn ich mich richtig erinnere, steht in der Windows-Regristry, mit welchem Programm der jeweilige Dateityp standardmäßig geöffnet wird. Im HKEY_CLASSES_ROOT gibt es für jede Dateieindung den entsprechenden Eintrag.
Für Delphi-Units gibt es z.B. den Schlüssel "HKEY_CLASSES_ROOT\.pas" und entsprechendes gilt für andere Dateiendungen. Dort steht dann eine Zeichenfolge "(Standard)", die den Wert "DelphiUnit" hat (oder entsprechendes für andere Dateien). Also sucht man den zugehörigen Schlüssel "HKEY_CLASSES_ROOT\DelphiUnit". Dort ist im Unterschlüssel "Shell\Open\Command" das Programm abgespeichert, mit dem die Datei normalerweise geöffnet wird.
Im Beispiel heißt das, dass im "HKEY_CLASSES_ROOT\DelphiUnit\Shell\Open\Comma nd" die Zeichenfolge "(Standard)" mit dem Wert "D:\Programme\Borland\Delphi7\Bin\delphi32.exe /np" steht. Somit hat man das Programm ermittelt, mit dem Delphi-Unit geöffnet werden (sollten).
Das Vorgehen für andere Dateitypen folgt (wie es so schön heißt) analog.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#3

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 01:32
Zitat von Steran:
Wenn ich auf eine Datei doppelklicke, dessen Dateierweiterung in Windows nicht registriert ist, soll der 'Öffnen mit' Dialog erscheinen.
Delphi-Quellcode:
var
  ExecInfo: TShellExecuteInfo;
  FileName: String;
begin

  FileName := 'M:\TEMP\MyFile.ext';
  if ShellExecute(Self.Handle, 'Open', PChar(FileName), nil, nil, SW_SHOWNORMAL) = SE_ERR_NOASSOC then
  begin
    FillChar(ExecInfo, SizeOf(TShellExecuteInfo), 0);
    with ExecInfo do
    begin
      cbSize := SizeOf(TShellExecuteInfo);
      Wnd := Self.Handle;
      lpVerb := 'OpenAs';
      lpFile := PChar(FileName);
      nShow := SW_SHOWNORMAL;
    end;
    ShellExecuteEx(@ExecInfo);
  end;

end;
oder
Delphi-Quellcode:
var
  FileName: String;
begin

  FileName := 'M:\TEMP\MyFile.ext';
  if ShellExecute(Self.Handle, 'Open', PChar(FileName), nil, nil, SW_SHOWNORMAL) = SE_ERR_NOASSOC then
    ShellExecute(Self.Handle, 'Open', 'rundll32.exe', PChar('shell32.dll,OpenAs_RunDLL ' + FileName), nil, SW_SHOWNORMAL);

end;
Zitat:
Mein eigentliches Problem ist, dass ich eine Videodatei mit Videolan öffnen will, der Videolan aber nicht aufspringt (es funzt jedoch, wenn ich im expl. die datei doppelt anklicke)
Aber per Doppelklick im Explorer geht VideoLan auf und spielt die Datei ab?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#4

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 11:59
Hi Binärbaum!!

Tja..das hab ich auch immer gedacht!
Leider gibt's unter HKEY_CLASSES_ROOT keinen .M2P Eintrag.

Auch unter Extras-Ordneroptionen-Dateitypen ist der Typ nicht zu finden (auch nicht, wenn ich bei der .M2P Datei öffnen mit mache, und die Datei neu mit VideoLan reggen will.

Deshalb verstehe ich auch nicht, wie es sein kann, dass die Datei mit Videolan aufgeht.

Wenn ich die Registry nach .M2P durchsuche finde ich nur MRU-Einträge...und die könnens ja wohl nicht sein

Ich weiß, das hört sich jetzt blöd an...aber es ist wirklich so!

danke auch für deinen post @sprint!
Werd das gleich mal testen! Aber ich fürchte halt, dass aufgrund der oben beschriebenen tatsache dann immer das "öffnen mit" aufgeht...werds aber noch testen!
thx

edit:
...genauso wie ichs befürchtet habe:
wenn ich sprint's methode verwende, kommt bei ner m2p datei immer der "öffnen mit" dialog! wenn ich hier "datei immer mit diesem programm öffnen" mache...kommt beim nächsten mal trotzdem der öffnen mit dia!
wenn ich die datei manuell regge merkt er sich das auch irgendwie nicht
Ich arbeite lokal als admin!

Also, das problem welches ihr jetzt habe, ist jetzt wohl eher ein windoof prob


mfg

Steran
  Mit Zitat antworten Zitat
lordcroc

Registriert seit: 13. Aug 2002
Ort: Braunschweig
137 Beiträge
 
Delphi 7 Professional
 
#5

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 12:19
hi,
guck mal unter HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts da werden auch Extensions explecit für einen User mit nem Programm Verknüpft.

mfg
lordcroc
  Mit Zitat antworten Zitat
Steran

Registriert seit: 14. Jan 2003
42 Beiträge
 
#6

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 12:35
thx a lot @lordcroc

hier ist die extension registriert!

anscheinend ignoriert ShellExecute die hier registrierten Erweiterungen aber
Gibt's ne möglichkeit (ohne Registry-Zugriff), auch diese registrierten Erweiterungen zu berücksichtigen?
  Mit Zitat antworten Zitat
lordcroc

Registriert seit: 13. Aug 2002
Ort: Braunschweig
137 Beiträge
 
Delphi 7 Professional
 
#7

Re: Datei mit verknüpften Programm öffnen

  Alt 10. Feb 2005, 13:15
da ich ma so ein ähnliches Problem hatte, habe ich einfach geguckt die Extension zufällig unter CURRRENT_USER... registriert ist und falls ja hab ich dann das Programm mit dem Dokument als Parameter aufgerufen.

mfg
lordcroc
  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 05:06 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