Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Defaultanwendung für Dateityp unter W8: wie bestimmen? (https://www.delphipraxis.net/182710-defaultanwendung-fuer-dateityp-unter-w8-wie-bestimmen.html)

ULIK 12. Nov 2014 14:48


Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Servus,

wie bestimmt man unter Windows 8 denn die Anwendung, die einem Dateityp als Default zugeordnet ist?
Unter XP konnte man sich ja durch die Registry hangeln, unter Vista / Windows 7 das Interface IApplicationAssociationRegistration mit QueryAppIsDefault verwenden, nur wie macht man das nun unter Windows 8? Dort ist die API laut MSDN nicht mehr unterstützt. Das Schnittstelle liefert dann bei mir auch immer, daß meine Anwendung der Default ist, obwohl sie es gar nicht ist.

Hintergrund der Geschichte: wenn meine Anwendung der Default für den Dateityp (in dem Fall .PDF) ist, dann möchte ich einige (selbst eingefügte) Einträge aus dem Explorer Kontextmenü ausblenden, die nur Sinn machen, wenn mein Programm nicht der Default ist.


Grüße,
Uli

DeddyH 12. Nov 2014 15:23

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Könnte man nicht mit FindExecutable das zugeordnete Programm ermitteln? Allerdings braucht man dazu IIRC eine existierende Datei des entsprechenden Typs.

ULIK 12. Nov 2014 15:58

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Hm, das könnte eventuell eine Lösung sein. Die Funktion liefert zwar nichts zurück, wenn eine Windows APP wie der MS Reader der Default ist, aber das würde mir reichen: Ich will ja nur testen, ob ich selbst der Default bin (und mein Programm ist ein Desktop Programm und wird auch gefunden).

Danke für den Tip!

Aber irgendwie hat das dennoch einen etwas unsauberen Beigeschmack für mich. Es muß doch offiziell von MS irgendeinen dokumentierten Weg geben, wie man das herausfindet. Für die Varianten für Windows 7 und älter haben sie sich ja auch die Finger wund geschrieben im MSDN.


Grüße,
Uli

Morphie 12. Nov 2014 17:19

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Wieso hangelst du dich nicht -wie bei XP- durch die Registry?

ULIK 12. Nov 2014 19:09

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Weil das schon seit Windows 7 nicht mehr funktioniert! Dort müssen die Anwendungen über eine API registriert werden und ich hab keine Ahnung, wo die hinschreibt. Jedenfalls nicht in die XPVariante rein. Das merkt man daran, wenn man die XP Variante auf sein eigenes Programm füllt und dann die Defaultanwendung mit den Windows-Mitteln umsetzt.

Wenn Du aber die entsprechenden Registry-Zweige kennst, nur her damit!


Grüße, Uli

mm1256 12. Nov 2014 21:50

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Schau mal hier nach:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\FileExts

CCRDude 13. Nov 2014 07:38

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
In Sachen Registry fallen mir spontan mindestens sieben verschiedene Möglichkeiten - zusätzlich zu dem vor mir genannten - ein, die man prüfen müsste (nicht vergessen, neben dem Key für die Dateiendung gibt's noch die Umleitungen auf andere Keys, dann Klassen für DLLs als Handler, und diese grob drei Methoden auch noch für die Default-Handler für alle unbekannten Dateisystemobjekte sowie alle unbekannten Dateien). Und selbst da wäre ich mir nicht sicher, ob das alle sind.

Halte das auch für die schlechteste aller Ideen, kann aber leider nichts zur eigentlichen Frage nach einem besseren Ersatz beitragen.

ULIK 13. Nov 2014 08:59

AW: Defaultanwendung für Dateityp unter W8: wie bestimmen?
 
Erst einmal vielen Dank für die Antworten! Ich werd es jetzt einmal mit FindExecutable implementieren, da dies für meinen Anwendungsfall reicht.
Aber wenn noch jemand mehr zu dem Thema weis, nur zu! Das Problem könnten ja auch noch andere Leute haben.


Danke,
Uli


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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