Come escludere un'applicazione dalla finestra di dialogo Apri con per 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 Open 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 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 registra tali informazioni per compilare l'elenco Programmi consigliati . Questo elenco viene presentato nel sottomenu Apri con come illustrato nella schermata seguente.

screenshot 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 i programmi consigliati

Nota

Se un'applicazione è registrata in OpenWithList o OpenWithProgIDs per il tipo di file, verrà visualizzata nell'elenco Programmi consigliati anche se è impostata la voce NoOpenWith. Tenere inoltre presente che, indipendentemente dal fatto che un'applicazione venga 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 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 l'aggiunta di un file alla jump list dell'applicazione tramite trascinamento della selezione, a meno che l'applicazione non sia registrata specificamente per gestire tale tipo di file.
  • Impedisce la finestra di dialogo file comune e 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 consiste nell'usare la sottochiave SupportedTypes 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. Fa anche in modo 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 FOS_DONTADDTORECENT tramite IFileDialog::SetOptions quando si chiama la finestra di dialogo Salva . In questo modo l'elemento viene aggiunto alle parti recenti o frequenti di una Jump List. Impedisce inoltre di tenere 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 alla Jump List dell'applicazione o per essere rilevati nell'elenco delle 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 .