Ausschließen einer Anwendung aus dem Dialogfeld Öffnen mit für nicht zugeordnete Dateitypen
Wenn ein Benutzer versucht, eine Datei zu öffnen, die kein Mitglied eines registrierten Dateityps ist (d. h. ein unbekannter Dateityp), oder wenn ein Benutzer im Kontextmenü einer Datei Öffnen mit oder Öffnen mit –> Standardprogramm auswählen auswählt, wird in der Shell ein Untermenü oder Dialogfeld angezeigt, mit dem der Benutzer das Zum Öffnen der Datei verwendete Programm angeben kann.
Standardmäßig wird jede Anwendung, die als Unterschlüssel von HKEY_CLASSES_ROOT\Anwendungen registriert ist, im Dialogfeld Öffnen mit angezeigt. Diese Anwendungen werden in Open mit angezeigt, unabhängig davon, ob die Anwendung für die Verarbeitung des Dateityps registriert ist.
Um zu verhindern, dass eine Anwendung im Dialogfeld Öffnen mit angezeigt wird, wenn die Anwendung nicht zum Öffnen bestimmter Dateitypen verwendet werden soll oder kann, verwenden Sie eine der beiden in diesem Thema beschriebenen Techniken.
Anweisungen
Schritt 1:
Fügen Sie dem Unterschlüssel der Anwendung einen NoOpenWith-Eintrag hinzu. Wenn eine Anwendung einen Dateityp verwendet, zeichnet Windows diese Informationen auf, um die Liste Empfohlene Programme zu erstellen. Diese Liste wird im Untermenü Öffnen mit angezeigt, wie im folgenden Screenshot gezeigt.
Diese empfohlenen Anwendungen werden auch im Abschnitt Empfohlene Programme des Dialogfelds Öffnen mit angezeigt, wie im folgenden Screenshot gezeigt.
Hinweis
Wenn sich eine Anwendung in den OpenWithList - oder OpenWithProgIDs für den Dateityp registriert hat, wird sie in der Liste Empfohlene Programme angezeigt, auch wenn der Eintrag NoOpenWith festgelegt ist. Denken Sie auch daran, dass ein Benutzer unabhängig davon, ob eine Anwendung in einer Liste empfohlener Programme angeboten wird, manuell zu jeder ausführbaren Datei navigieren kann.
Anwendungen können diese Nachverfolgung deaktivieren, indem sie einen NoOpenWith-Wert unter dem Unterschlüssel der Anwendung angeben.
Der NoOpenWith-Eintrag ist ein leerer REG_SZ Wert, wie im folgenden Beispiel gezeigt.
HKEY_CLASSES_ROOT
Applications
MyProgram.exe
NoOpenWith
Das Festlegen des Eintrags NoOpenWith hat auch folgende Auswirkungen:
- Verhindert das Anheften einer Datei an die Sprungliste der Anwendung per Drag-and-Drop, es sei denn, die Anwendung ist speziell für die Behandlung dieses Dateityps registriert.
- Verhindert, dass das Dialogfeld allgemeine Datei und jeder Aufruf der SHAddToRecentDocs-Funktion der Sprungliste der Anwendung eine beliebige Datei hinzufügen, es sei denn, die Anwendung ist speziell für die Behandlung dieses Dateityps registriert.
Schritt 2:
Die zweite Möglichkeit, um zu verhindern, dass eine Anwendung im Dialogfeld Öffnen mit angezeigt wird, besteht darin, den Unterschlüssel SupportedTypes zu verwenden, um explizit die Erweiterungen von Dateitypen aufzulisten, die die Anwendung öffnen kann. Dadurch wird verhindert, dass die Anwendung im Dialogfeld Öffnen mit für Dateitypen angezeigt wird, die nicht geöffnet werden können. Außerdem wird die Anwendung wie zuvor erläutert in der Liste Empfohlene Programme angezeigt.
Diese Methode ist besonders nützlich, wenn eine Anwendung eine Datei als bestimmten Dateityp speichern kann, aber diesen Dateityp nicht öffnen kann. Eine Anwendung sollte auch das FOS_DONTADDTORECENT-Flag über IFileDialog::SetOptions festlegen, wenn das Dialogfeld Speichern aufgerufen wird. Dadurch wird verhindert, dass das Element dem Bereich Zuletzt oderHäufig einer Sprungliste hinzugefügt wird. Außerdem wird verhindert, dass die Anwendung unter OpenWithList nachverfolgt wird.
Jede unterstützte Erweiterung wird als Eintrag unter dem Unterschlüssel SupportedTypes hinzugefügt, wie im folgenden Beispiel gezeigt. Die Einträge sind vom Typ REG_SZ oder REG_NULL ohne zugeordnete Werte.
HKEY_CLASSES_ROOT
Applications
ApplicationName
SupportedTypes
.ext1
.ext2
.ext3
Wenn ein SupportedTypes-Unterschlüssel bereitgestellt wird, können nur Dateien mit diesen Erweiterungen an die Sprungliste der Anwendung angeheftet oder in der Liste Zuletzt verwendeter oder häufiger Ziele einer Anwendung nachverfolgt werden.
Der NoOpenWith-Eintrag überschreibt den Unterschlüssel SupportedTypes und blendet die Anwendung im Dialogfeld Öffnen mit aus.