![]() |
shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Uns haben Kunden gemeldet das sie keine Imagedateien mehr aus unseren Programmen mit externen Viewern öffnen können.
D.h wir haben bei uns einen eigenen Dateibrowser mit Anzeige und per Rechtsklick bieten wir an das mit dem Standard Windowsprogramm für den Dateitypen zu öffnen. Das machen wir per
Code:
Auf Bilder funktioniert das in Windows 10 und Windows Server 2019 nicht mehr wenn nicht das neue Foto Programm von Windows für die Dateien verknüpft ist. Problem auf den TS mit Windows 2019 Server ist das es dort das Programm nicht gibt.
shellexecute(0,nil,pchar(data.pathname+data.filename),'',nil,0);
Wir haben das mir diversen Programm getestet. Und sobald der Dateityp verknüpft ist öffnet sich kein Programm mehr z.b Paint, IrfanView, alte Windows 7 Vorschau etc. Gibt es hier eine eleganten Weg wie man Windows dazubringt? Wäre hier der Weg durch die Registry das Programm zu ermitteln und direkt anzustarten? Edit : als Operation pchar('open') mitgeben ändert auch nichts daran. Edit 2 : ok es lag an sw_show am Ende. Dort hatten wir 0 drin was auch bisher funktioniert hatte. Wobei es auch nicht mit allen Programmen funktioniert. Irfanview = ja, Paint = nein |
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Ich will kein Schlauscheißer sein, aber statt "magischen" Zahlen sollte man sich wirklich an die gültigen Konstanten halten, die dort,
![]()
Delphi-Quellcode:
ist
0
Delphi-Quellcode:
, usw.
SW_HIDE
![]() |
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Zitat:
Und selbst SW_SHOW funktioniert nur bedingt. |
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Zitat:
Du startest diese EXE unsichtbar, aber die startet dann eine andere EXE, welche angezeigt wird, oder sie gibt das "Öffnen" an eine bereits laufende EXE weiter. |
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Code:
Also ich nutze als zweiten Parameter ja immer 'open' und nicht nil. Ob's 'nen Unterschied macht?
shellexecute(0,nil,pchar(data.pathname+data.filename),'',nil,0);
|
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Offenbar kann nil (NULL) einen Unterschied machen:
Zitat:
|
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Zitat:
"Open" führt Open aus und wenn es das nicht gibt, dann war's das. nil, sucht und führt oft "Open" aus (weil es oft der Default ist und falls es das gibt) und wenn nicht, dann nimmt es sich das erste Verfügbare. z.B. HKEY_CLASSES_ROOT\.txt -> HKEY_CLASSES_ROOT\txtfile\shell\open HKEY_CLASSES_ROOT\.386 -> HKEY_CLASSES_ROOT\vxdfile ... kein shell\open und sonst auch nix |
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Ich würde halt, wenn ich eine Datei öffnen will 'open' verwenden (das genau das macht) und nicht nil, dass irgendwas macht...
|
AW: shellexecute ab Windows 10 auf Bilder funktioniert nicht mehr
Wenn es möglichst unbedingt aufgehn soll, dann im Prinzip OPEN und wenn nicht, dann nochmal NIL (oder schauen was es noch gibt).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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