Condividi tramite


Come escludere un'applicazione dalla finestra di dialogo Apri con per 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) o quando un utente seleziona Apri con o Apri con -> Scegliere il 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 utilizzato 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 Apri con indipendentemente dal fatto che l'applicazione sia registrata per gestire il tipo di file.

Per impedire la visualizzazione di un'applicazione 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.

Disposizioni

Passaggio 1:

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

schermata del menu di scelta rapida con il sottomenu aperto visualizzato

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

schermata dell'apertura con la finestra di dialogo con programmi consigliati

Nota

Se un'applicazione si è registrata nel OpenWithList o OpenWithProgIDs per il tipo di file, verrà visualizzata nell'elenco Programmi consigliati anche se è impostata la voce NoOpenWith. Tenere presente anche che, indipendentemente dal fatto che un'applicazione sia disponibile 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 REG_SZ vuoto, come illustrato nell'esempio seguente.

HKEY_CLASSES_ROOT
   Applications
      MyProgram.exe
         NoOpenWith

L'impostazione della voce NoOpenWith ha anche questi effetti:

  • Impedisce di aggiungere un file alla jump list dell'applicazione tramite trascina e rilascia, a meno che l'applicazione non sia specificamente registrata per gestire quel tipo di file.
  • Impedisce alla finestra di dialogo comune dei file e a qualsiasi chiamata alla funzione SHAddToRecentDocs di aggiungere qualsiasi file alla Jump List dell'applicazione, a meno che l'applicazione non sia registrata specificamente 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 SupportedTypes sottochiave per elencare in modo esplicito le estensioni dei tipi di file che l'applicazione può aprire. Ciò impedisce la visualizzazione dell'applicazione nella finestra di dialogo Apri con per i tipi di file che non è possibile aprire. Ciò provoca anche che l'applicazione venga visualizzata nell'elenco programmi consigliati come descritto 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 FOS_DONTADDTORECENT tramite IFileDialog::SetOptions quando si chiama la finestra di dialogo Salva. Per impedire che l'elemento venga aggiunto alle sezioni Recenti o Frequenti di una Jump List. Impedisce inoltre il tracciamento dell'applicazione in OpenWithList.

Ogni estensione supportata viene aggiunta come voce nella sottochiave SupportedTypes come illustrato nell'esempio seguente. Le voci sono del tipo REG_SZ o del tipo 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 tracciati nell'elenco delle destinazioni Recenti o Frequenti dell'applicazione.

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