![]() |
FindExecutable
Hallo,
beim Umstieg auf Delphi 10.x finde ich immer noch Fehler. Ich benutze FindExecutable, um aus meinem Programm heraus das Standartprogramm für JPG usw. auf zurufen. Bei Tif klappt das es gibt PhotoViewer.dll zurück bei Jpg Errorcode 31 nichts zugeordnet. Sieht so aus:
Delphi-Quellcode:
Wenn es bei Tif geht, kann mein Funktionsaufruf nicht falsch sein. Willie.
Prog:=StrAlloc(255);
Er:=FindExecutable(PWideChar(ExtractFileName(fs)),PWideChar(ExtractFilePath(fs)), PWideChar(Prog)); case Er of 31: Result:=''; 0, ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND: Result:='Fehler'; else Result:=Prog end; |
AW: FindExecutable
![]() Da steht bei den Rückgabewerten, was die 31 bedeutet. Sollte man dann eventuell einfach auch als Rückgabewert liefern und nicht durch 'nen nichtssagenden Leerstring ersetzen. |
AW: FindExecutable
Dass "31" "nicht zugeordnet" heißt, weiß er ja selbst. Seine Frage ist ja: "Weshalb meint diese Routine, es sei nichts zugeordnet? Wenn ich die Datei im Explorer doppelklicke wird sie doch von einem Programm geöffnet!"
PS: Mir ist deine String-Länge von 255 nicht ganz geheuer. Sie sollte MAX_PATH lang sein, und das ist 260 oder sowas... |
AW: FindExecutable
Zitat:
Da steht nichts davon, dass ein Doppelklick im Explorer funktioniert. Da steht lediglich, dass für TIF die PhotoViewer.dll gefunden wird und für JPG kein Ergebnis geliefert wird, eben die 31, welche bedeutet, dass es nix zugeordnetes gibt. Zur Überprüfung mache man halt im Explorer einen Doppelklick und teile das Ergebnis hier mit. Wenn's nicht funktioniert, dürfte die 31 stimmen. Im Zweifelsfalle mal in der Registry nachschauen. Dateiendung .jpg und von dort dann, abhängig vom Inhalt der Einträge, weitersuchen. |
AW: FindExecutable
Also Freunde,
FindExecute gibt bei Tif-Bildern PhotoViewer.dll zurück, bei Jpg-Bildern Errorcode 31 bedeutet nichts zugeordnet, was nicht stimmt Doppelklick. Ich könnte natürlich PhotoViewer.dll als Konstante eintragen aber ich denke, das ist keine stabile Lösung. Irgentwann wird Microsoft einen neuen Bilderviewer auf den Markt bringen. Ich habe hier das Archiv angesehen und sehe, dass ich schonmal 2008 ähnlich gefragt habe, auch da gab es keine Lösung. MAX_PATH ist ein richtiger Hinweis. Willie. |
AW: FindExecutable
Bei TIF/TIFF ist PhotoViewer.dll im \OpenWithList eingetragen.
Bei JPG/JPEG ist dieser Eintrag aber leer. Das Öffnen im Explorer verwendet aber \Shell\Open, \ShellEx\Open und vieles Anderes. FindExecutable nutzt also nicht die selben Einstellungen und liefert somit auch andere Ergebnisse. Wenn es nur um das Öffnen von Dateien geht, warum übergibst du nicht einfach die Datei direkt an ShellExecute und lässt Dieses die Auswahl treffen? Denn das nutzt die selben Funktionen, wie der Explorer, bzw. der Explorer nutzt wohl ShellExecute. :angle: Außerdem hat der Explorer auch nochmal eigene Einstellungen, in einem eigenen Registryzweig, wo das gespeichert wird, was verwendet wurde, als der Nutzer im Explorer "Öffnen mit" aufrief. |
AW: FindExecutable
Zitat:
|
AW: FindExecutable
hallo,
bei Win10 soll das helfen ![]() oder nach Photview enabler suchen. auch ganz huebsch ![]() gruß |
AW: FindExecutable
Zitat:
Die alte Fotoanzeige öffnet bei mir im Explorer Tif-Bilder. Danke und Gruß Willie. |
AW: FindExecutable
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,
einmal diesen Registry Eintrag überprüfen Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win dows Photo Viewer\Capabilities\FileAssociations und wie in #8 Link 1 erweitern, falls erforderlich. sollte wie im Anhang aussehen. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 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-2025 by Thomas Breitkreuz