![]() |
ShellExecute-Problem
hallo leute,
ich habe 2 probleme mit meinem dateimanager: 1. wenn ich eine datei, die kein programm zugeordnet hat (z.b. PDF-datei ohne acrobat reader) mit SHELLEXECUTE öffnen will, kommt nichts. wie kann man bei so einem fall das ÖFFNEN MIT..-fenster anzeigen? 2. ich habe zuletzt den "powerpoint viewer 2003" installiert und wollte von meinem dateimanager aus eine PPS-datei (powerpoint datei) öffnen, aber der viewer öffnet sich nicht. beim windows-explorer (oder auch bei winrar etc) wird der powerpoint viewer mit der datei gestartet. wie kann ich diese pps-dateien mit meinem dateimanager öffnen? reicht SHELLEXECUTE? PLEASE HELP :gruebel: |
Re: ShellExecute-Problem
|
Re: ShellExecute-Problem
Hi silentAMD (meiner is laut; scheiss lüfter)
Also, die 2. Frage zuerst: Im Normalfall müsste ShellExecute reichen, aber nur dann wenn dieser Viewer mit der Endung .pps 'verlinkt' ist. Sollte er damit verlinkt sein, und er startet trotzdem nicht kannst du in der Registrierung den Pfad dieses Viewers nachlesen und ihn dann mit hilfe von shellexecute ausführen und als parameter den pfad der auszuführenden datei. nun die 1. frage: Sollte die endung in registrierung im rootkey HKEY_CLASSES_ROOT nicht vorhanden sein (also kein schlüssel namens .pps), dann weist du dass nichts starten wird. In diesem Falle kannst (musst) du ein eigenes 'Öffnen mit' -Fenster zeigen in welchem man das betreffende programm dann auswählen kann ... ich hoffe das war nicht zu kompliziert und hat geholfen, sonst melde dich nochmal by c113plpbr |
Re: ShellExecute-Problem
nee, das weiß ich schon, ich meine wenn das
Delphi-Quellcode:
nicht klappt, weil keine passende anwendung installiert ist, um diesen dateityp anzusehen (wie pdf ohne acrobat), dass dann das öffnenmit-fenster geöffnet wird.
ShellExecute(0,'open',PChar(Dateiname),nil,PChar(Ordner),SW_SHOW)
|
Re: ShellExecute-Problem
geht das nur mit der registry? :gruebel:
|
Re: ShellExecute-Problem
Mir fällt nichts anderes als die Registry ein, denn da wir das ganze mit den Endungen gespeichert ...
Vielleicht gibts noch nen Befehl der das einfach und schnell macht, aber sowas ist mir nicht bekannt |
Re: ShellExecute-Problem
guck mal im msdn da siehst du was die Rückgabewerte von Shellexecute bedeuten. <32 oder so war glabue erfolg ansonsten was anderes..
|
Re: ShellExecute-Problem
für die leute die zu faul sind in der msdn nachzuschauen hier ein kleiner auszug:
Zitat:
|
Re: ShellExecute-Problem
Super!!!! :thuimb:
Ich bedanke mich. :hello: Nach langem suchen hab ich den passenden eintrag gefunden: :coder:
Delphi-Quellcode:
muss man getlasterror verwenden oder gibt es eine alternative? :dp:
procedure TForm1.Open(FileName, Directory: String);
begin ShellExecute(0,'open',PChar(FileName), nil, PChar(Directory), SW_NORMAL); if getlasterror = ERROR_NO_ASSOCIATION then ShellExecute(0,'open','rundll32.exe', PChar('shell32.dll,OpenAs_RunDLL '+FileName), PChar(Directory), SW_SHOW) end; |
Re: ShellExecute-Problem
Delphi-Quellcode:
Oder
Error := ShellExecute(...
Delphi-Quellcode:
if ShellExecute(...) = ERROR_NO_ASSOCIATION then
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz