Come escludere un'applicazione dalla finestra di dialogo Apri con i tipi di file non associati

Quando un utente tenta di aprire un file che non è membro di alcun tipo di file registrato , ovvero un tipo di file sconosciuto, oppure quando un utente seleziona Apri con o Apri con-> Scegliere programma predefinito dal menu di scelta rapida di un file, shell presenta un sottomenu o una finestra di dialogo che consente all'utente di specificare il programma usato per aprire il file.

Per impostazione predefinita, qualsiasi applicazione registrata come sottochiave di HKEY_CLASSES_ROOT\Applications viene visualizzata nella finestra di dialogo Apri con. Queste applicazioni vengono presentate in Open con indipendentemente dal fatto che l'applicazione sia registrata per gestire il tipo di file.

Per evitare che un'applicazione venga visualizzata nella finestra di dialogo Apri con quando l'applicazione non deve essere usata o non può essere usata per aprire determinati tipi di file, usare una delle due tecniche descritte in questo argomento.

Istruzioni

Passaggio 1:

Aggiungere una voce NoOpenWith alla sottochiave dell'applicazione. Quando un'applicazione usa un tipo di file, Windows record che le informazioni per compilare l'elenco Programmi consigliati. Questo elenco viene presentato nel sottomenu Apri con sottomenu, come illustrato nella schermata seguente.

screen shot of shortcut menu with the open with submenu shown

Queste applicazioni consigliate vengono visualizzate anche nella parte Programmi consigliati della finestra di dialogo Apri con , come illustrato nella schermata seguente.

screen shot of the open with dialog box with recommended programs

Nota

Se un'applicazione si è registrata nell'elenco OpenWithList o OpenWithProgIDs per il tipo di file, verrà visualizzata nell'elenco Programmi consigliati anche se la voce NoOpenWith è impostata. Tenere presente anche che, indipendentemente dal fatto che un'applicazione sia offerta in un elenco di programmi consigliati, un utente può passare manualmente a qualsiasi file eseguibile.

 

Le applicazioni possono disabilitare questo rilevamento specificando un valore NoOpenWith nella sottochiave dell'applicazione.

La voce NoOpenWith è un valore di REG_SZ vuoto, come illustrato nell'esempio seguente.

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         NoOpenWith

L'impostazione della voce NoOpenWith presenta anche questi effetti:

  • Impedisce l'aggiunta di un file all'elenco jump dell'applicazione tramite trascinamento della selezione, a meno che l'applicazione non sia registrata in modo specifico per gestire tale tipo di file.
  • Impedisce la finestra di dialogo file comune e qualsiasi chiamata alla funzione SHAddToRecentDocs di aggiungere qualsiasi file all'elenco jump dell'applicazione, a meno che l'applicazione non sia registrata in modo specifico per gestire tale tipo di file.

Passaggio 2:

Il secondo modo per impedire la visualizzazione di un'applicazione nella finestra di dialogo Apri con è usare la sottochiave SupportedTypes per elencare in modo esplicito le estensioni di tipi di file che l'applicazione può aprire. In questo modo l'applicazione viene visualizzata nella finestra di dialogo Apri con i tipi di file che non possono essere aperti. Determina inoltre che l'applicazione venga visualizzata nell'elenco Programmi consigliati come illustrato in precedenza.

Questo metodo è particolarmente utile se un'applicazione può salvare un file come un determinato tipo di file, ma non può aprire tale tipo di file. Un'applicazione deve anche impostare il flag di FOS_DONTADDTORECENT tramite IFileDialog::SetOptions quando si chiama la finestra di dialogo Salva . Ciò impedisce l'aggiunta dell'elemento alle parti recenti o frequenti di un elenco jump. Blocca inoltre la traccia dell'applicazione in OpenWithList.

Ogni estensione supportata viene aggiunta come voce nella sottochiave SupportedTypes , come illustrato nell'esempio seguente. Le voci sono di tipo REG_SZ o REG_NULL, senza valori associati.

HKEY_CLASSES_ROOT
   Applications
      ApplicationName
         SupportedTypes
            .ext1
            .ext2
            .ext3

Se viene fornita una sottochiave SupportedTypes , solo i file con tali estensioni sono idonei per l'aggiunta all'elenco jump list dell'applicazione o per essere monitorati nell'elenco destinazioni recenti o frequenti di un'applicazione.

La voce NoOpenWith esegue l'override della sottochiave SupportedTypes e nasconde l'applicazione nella finestra di dialogo Apri con .