Autor Beitrag
weTTexFry
Hält's aus hier
Beiträge: 4

Win Vista(Business), Win 7(Ultimate), Kubuntu 8.10
C# (VS 2008, Prof.), C++, ActivePerl 5.10
BeitragVerfasst: Di 28.07.09 08:04 
Hallo,

Ich suche ein kleines code-schnipsel mit dem ich Dateien je nach endung mit dem dazugehörigen Programm öffne.

z.b. *.txt -> Windows-Standard: Notepad
z.b. *.doc -> Windows-Standard: Word

und ich möchte nicht für jede endung selbst ein Programm auswählen, denn ich weiß ja nicht was der end-user auf seinem Rechner für standards hat ;-) (z.b. er hat kein word sondern openoffice als standard, dann soll er *.doc mit openoffice öffnen, oder statt notepad hat er notepad++, ...)

Wenn ich eine endung hab die mit keinem Programm verknüpft ist soll der "Open With"-Dialog (ka wie der jetzt auf deutsch heißt) kommen, wo man sich dann ein Programm aussuchen kann.

mfg weTTexFry

ps: das programm wird nur unter windows laufen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 28.07.09 08:40 
Hallo und :welcome: !

Wie wäre es mit Process.Start? ;-)
Als Parameter einfach den Dateinamen übergeben, fertig.
weTTexFry Threadstarter
Hält's aus hier
Beiträge: 4

Win Vista(Business), Win 7(Ultimate), Kubuntu 8.10
C# (VS 2008, Prof.), C++, ActivePerl 5.10
BeitragVerfasst: Di 28.07.09 08:47 
Man bin ich dämlich, ich such google rauf und runter mit dem themen-namen aber find nix und derweil hätt ich nur...
okay lassen wir das, danke @ jaenicke

thema kann noch nicht geclosed werden wenn ich irgendeine endung nehme, dann kommt ein error:
"System.ComponentModel.Win32Exception: No application is associated with the specified file for this operation..." dann kommt das Pocess.Start mit den parametern

wie start ich jetzt diesen "Open With"-Dialog??
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 28.07.09 09:17 
Der liegt in der shell32.dll, die Funktion heißt OpenAs_RunDLL und erwartet den Pfad als Parameter. Also musst du das nur aufrufen.
ausblenden C#-Quelltext
1:
Process.Start("rundll32.exe""shell32.dll, OpenAs_RunDLL " + YourFilePath);					

Nebenbei werden hier erledigte Threads nicht geschlossen, es reicht ja, wenn diese vom Ersteller als erledigt markiert sind. ;-)
weTTexFry Threadstarter
Hält's aus hier
Beiträge: 4

Win Vista(Business), Win 7(Ultimate), Kubuntu 8.10
C# (VS 2008, Prof.), C++, ActivePerl 5.10
BeitragVerfasst: Di 28.07.09 09:26 
okay, jetzt funktioniert alles, danke nochmal