Condividi tramite


Gestione delle applicazioni predefinite

La funzionalità Imposta accesso al programma e Impostazioni predefinite computer (SPAD) è stata aggiunta a Windows XP e versioni successive di Windows per gestire le impostazioni predefinite per computer. Oltre a SPAD, Windows Vista ha introdotto il concetto di applicazioni predefinite per utente e l'elemento programmi predefiniti nel Pannello di controllo.

Importante

Questo argomento non si applica a Windows 10. Il modo in cui funzionano le associazioni di file predefinite è cambiato in Windows 10. Per altre informazioni, vedere la sezione sulle modifiche sul modo in cui Windows 10 gestisce le app predefinite in questo post.

 

Le impostazioni predefinite per utente sono specifiche di un singolo account utente nel sistema. Se sono presenti impostazioni predefinite per utente, hanno la precedenza sui valori predefiniti corrispondenti per ogni computer per tale account. A partire da Windows 8, il sistema di estendibilità per le impostazioni predefinite per il tipo di file e il protocollo è rigorosamente per utente e le impostazioni predefinite per computer vengono ignorate. SPAD è stato modificato anche in Windows 8 per impostare le impostazioni predefinite per utente.

  • Nei sistemi che eseguono versioni di Windows precedenti a Windows 8, un account utente appena creato riceve le impostazioni predefinite per computer fino a quando non vengono stabilite le impostazioni predefinite per utente. In Windows Vista e versioni successive gli utenti possono usare l'elemento programmi predefiniti nel Pannello di controllo per impostare o modificare le impostazioni predefinite per utente. Inoltre, quando un'applicazione viene eseguita per la prima volta, le impostazioni predefinite per utente possono essere impostate usando le linee guida seguenti nella sezione Application First Run and Defaults .
  • Nei sistemi che eseguono Windows 8, un account utente appena creato si basa sulle impostazioni predefinite per utente dall'avvio e l'impostazione di tali impostazioni predefinite alla prima esecuzione, come illustrato nella sezione 'applicazione prima esecuzione e impostazioni predefinite non è più supportata.

Un'applicazione deve registrarsi sia con SPAD che con la funzionalità Programmi predefiniti da offrire come programma predefinito in Windows Vista e versioni successive.

Questo argomento fornisce ai fornitori di software indipendenti (ISV) una guida rapida alla procedura necessaria per registrare e gestire le impostazioni predefinite dell'applicazione in Windows Vista e versioni successive. Sono disponibili collegamenti ad articoli più approfonditi sull'argomento di ogni sezione.

Elemento programmi predefinito nel Pannello di controllo

programmi predefiniti è una funzionalità introdotta in Windows Vista, accessibile direttamente dal menu start e dal Pannello di controllo. Fornisce una nuova infrastruttura che funziona con privilegi utente standard (non elevati) ed è progettata per consentire agli utenti e alle applicazioni di gestire le impostazioni predefinite per utente. Per gli utenti, Programmi predefiniti offre un modo unificato e facilmente accessibile per gestire le impostazioni predefinite, le associazioni di file e la riproduzione automatica in tutte le applicazioni del sistema. Per le applicazioni, l'uso dell'ambito per utente fornito dalle API Programmi predefiniti offre i vantaggi seguenti:

  • Nessuna elevazione

    Un'applicazione non deve elevare i privilegi per richiedere le impostazioni predefinite.

  • buona cittadinanza

    In un computer con più utenti, ogni utente può selezionare applicazioni predefinite diverse.

  • Gestione predefinita

    Le API programmi predefinite offrono un meccanismo affidabile e coerente per il controllo automatico dello stato predefinito e il recupero delle impostazioni perse senza ricorrere alla scrittura direttamente nel Registro di sistema. Tuttavia, a partire da Windows 8, non è consigliabile che le applicazioni eseseguono query sullo stato predefinito perché un'applicazione non può più modificare le impostazioni predefinite. Queste modifiche possono essere apportate solo dall'utente.

Per consentire all'applicazione di gestire le impostazioni predefinite in modo efficace, è necessario registrare l'applicazione come programma predefinito potenziale. Per informazioni dettagliate sulla registrazione e sull'uso delle API programmi predefiniti, vedere Programmi predefiniti.

Programmi predefiniti offre anche queste due funzionalità:

  • Interfaccia utente predefinita riutilizzabile

    L'interfaccia utente di entrambi i valori predefiniti del programma (Impostare i programmi predefiniti) e le associazioni di file (Associare un tipo di file o un protocollo a un programma) possono essere riutilizzate e chiamate dall'interno di un'applicazione. Questo consente alle applicazioni di offrire un'esperienza utente standard per la gestione delle impostazioni predefinite e risparmia agli ISV lo sviluppo di un'interfaccia utente personalizzata o equivalente.

  • inclusione di URL e informazioni di marketing

    Come parte della pagina Impostare i Programmi Predefiniti dell'elemento Programmi Predefiniti nel Pannello di Controllo, un'app può fornire informazioni di marketing e un collegamento al sito web del fornitore. Questo URL è derivato dal certificato Authenticode con cui l'applicazione è stata firmata. Ciò impedisce l'uso improprio e la sostituzione non autorizzata di questo collegamento. Se un'applicazione ha un certificato Authenticode che include un URL incorporato, l'interfaccia utente di Windows visualizza l'URL incorporato. Gli ISV dovrebbero sfruttare questa funzionalità per indirizzare gli utenti al sito Web per gli aggiornamenti e altri download.

Impostare l'accesso al programma e le impostazioni predefinite del computer

Impostare l'accesso al programma e le impostazioni predefinite del computer (SPAD) consente agli amministratori di gestire le impostazioni predefinite a livello di computer ereditate da tutti i nuovi utenti del computer. Prima di Windows 8, SPAD consentiva anche agli amministratori di ripristinare le associazioni di file in caso di interruzione quando i programmi sono stati rimossi dal sistema. Tuttavia, a partire da Windows 8, SPAD influisce solo sulle impostazioni predefinite specifiche dell'utente.

Per ulteriori informazioni sulla registrazione di un'applicazione in SPAD, vedere Utilizzo delle impostazioni di accesso al programma e predefiniti del computer (SPAD) e Registrazione di programmi con tipi client. Le modifiche specifiche e le nuove raccomandazioni sono descritte nelle sezioni seguenti.

Configurazione delle predefinizioni in SPAD

Le impostazioni predefinite per utente sostituiscono quelle per computer.

  • Prima di Windows 8: le impostazioni predefinite impostate in SPAD (che sono per computer) non verranno visualizzate dagli utenti se vengono impostate le impostazioni predefinite per utente corrispondenti. Se un utente non ha impostato un valore predefinito per utente, il sistema usa l'impostazione predefinita del computer corrispondente. I nuovi account utente in un computer ereditano inizialmente le impostazioni predefinite del computer. La prima volta che un utente esegue un'applicazione, l'applicazione deve richiedere all'utente di assegnare le impostazioni predefinite per utente. Vedi l'applicazione prima-esecuzione e le impostazioni predefinite.
  • A partire da Windows 8: tutte le impostazioni predefinite sono per utente e qualsiasi impostazione predefinita per computer viene ignorata. Le applicazioni non possono più impostare le scelte predefinite, in modo da non consentire all'utente di eseguire l'assegnazione di tali impostazioni predefinite.

Quando un'applicazione pre-Windows 8 implementa Imposta come predefinita in SPAD, è necessario seguire queste linee guida:

  • Le applicazioni devono richiedere solo le impostazioni predefinite a livello di computer tramite SPAD.
  • Le applicazioni devono non attestazioni predefinite per utente tramite SPAD.

Quando un'applicazione Windows 8 implementa Imposta come predefinito in SPAD, è necessario registrare i relativi tipi di file e protocolli in Programmi predefiniti, usando lo stesso nome dell'applicazione usato in SPAD. Ciò consente di modificare SPAD affinché la modifica si rifletta nella voce corrispondente di Programmi predefiniti per l'utente corrente.

Nascondi accesso in SPAD

L'opzione Nascondi accesso per ogni possibile impostazione predefinita in SPAD è accessibile in uno dei due modi seguenti:

  • Scegliere la categoria di impostazioni predefinite non Microsoft, che rimuove l'accesso a tutte le impostazioni predefinite di Microsoft.
  • Scegliere la categoria personalizzata e deselezionare la casella di controllo Abilita l'accesso a questo programma .

In precedenza, l'esecuzione di una di queste azioni rimuoveva tutti i punti di ingresso alle applicazioni appropriate nel sistema. Linee guida specifiche per questa situazione dicono di rimuovere collegamenti e icone dalle posizioni seguenti:

  • Desktop
  • Menu di avvio
  • Barra di avvio veloce (solo Windows Vista e versioni precedenti)
  • Area di notifica
  • Menu di scelta rapida
  • Barra attività cartelle

I fornitori sono invitati a implementare queste linee guida nella funzione di callback Nascondi accesso dell'applicazione.

Nascondi metodo alternativo di accesso in SPAD

Per alcune applicazioni legacy, un'implementazione completa di Hide Access potrebbe non essere pratica. Un metodo alternativo che ottiene lo stesso effetto, ma non è facilmente reversibile dall'utente, consiste nel disinstallare l'applicazione. Di seguito viene illustrato il comportamento di esempio e il codice di esempio da implementare.

L'esperienza utente consigliata per questa alternativa è la seguente:

  • Quando l'utente cancella la casella di Abilita l'accesso a questo programma in SPAD, viene visualizzata l'interfaccia utente seguente.

    finestra di dialogo Vista su come nascondere l'accesso al programma

  • Quando l'utente fa clic su OK, viene visualizzato l'elemento Programmi e funzionalità nel Pannello di controllo in modo che l'utente possa disinstallare l'applicazione.

  • Gli utenti di Windows XP devono essere visualizzati nella finestra di dialogo seguente.

    finestra di dialogo di Windows XP su come nascondere l'accesso al programma

  • Quando l'utente di Windows XP fa clic OK, viene visualizzato l'elemento Installazione applicazioni nel Pannello di controllo in modo che l'utente possa disinstallare l'applicazione.

Il codice seguente fornisce un'implementazione riutilizzabile per la funzionalità Nascondi accesso, come descritto in precedenza. Può essere usato in Windows XP, Windows Vista e Windows 7.

#include <windows.h>
#include <shlwapi.h>
#include <strsafe.h>

PCWSTR c_pszMessage1 = L"To hide access to this program, you need to uninstall it by ";
PCWSTR c_pszMessage2 = L"using\n%s in Control Panel.\n\nWould you like to start %s?";
PCWSTR c_pszApplicationName  = L"Sample App";

int _tmain(int argc, WCHAR* argv[])
{
    OSVERSIONINFO version;
    version.dwOSVersionInfoSize = sizeof(version);

    if (GetVersionEx(&version))
    {
        PCWSTR pszCPLName = NULL;

        if (version.dwMajorVersion >= 6)
        {
            // Windows Vista and later
            pszCPLName = L"Programs and Features";
        }
        else if (version.dwMajorVersion == 5 &&
                 version.dwMinorVersion == 1)
        {
            // XP
            pszCPLName = L"Add/Remove Programs";
        }

        if (pszCPLName != NULL)
        {
            WCHAR szMessage[256], szScratch[256];
            if (SUCCEEDED(StringCchPrintf(szScratch, 
                                          ARRAYSIZE(szScratch), 
                                          c_pszMessage2, 
                                          pszCPLName, 
                                          pszCPLName)))
            {
                if (SUCCEEDED(StringCchCopy(szMessage, 
                                            ARRAYSIZE(szMessage), 
                                            c_pszMessage1)))
                {
                    if (SUCCEEDED(StringCchCat(szMessage, 
                                               ARRAYSIZE(szMessage), 
                                               szScratch)))
                    {
                        if (IDOK == MessageBox(NULL, 
                                               szMessage, 
                                               c_pszApplicationName, 
                                               MB_OKCANCEL))
                        {
                            ShellExecute(NULL, 
                                         NULL, 
                                         L"appwiz.cpl", 
                                         NULL, 
                                         NULL, 
                                         SW_SHOWNORMAL);
                        }
                    }
                }
            }
        }
    }
    return 0;
}

Registrazione per i punti di ingresso dell'applicazione

Un'applicazione può avere molti punti di ingresso all'interno del sistema operativo. Di seguito sono riportate le posizioni consigliate per i punti di ingresso:

  • Desktop
  • Menu di Avvio
  • Barra di avvio veloce (solo Windows Vista e versioni precedenti)
  • Area di notifica
  • Menu di scelta rapida
  • Banda di cartelle attività

Questa sezione è incentrata su queste aree specifiche:

Apri con

Il menu di scelta rapida Apri con consente all'utente di selezionare un'applicazione in grado di gestire un tipo di file specifico. Anche se open with può essere usato per aprire un file con un'applicazione una sola volta, può essere usato anche per impostare l'impostazione predefinita per l'estensione del nome file. Pertanto, un'applicazione deve sempre registrarsi per Open With in modo che gli utenti vengano presentati con tale applicazione come scelta. Le applicazioni possono registrare sia i tipi di file che i protocolli per Open With. Le applicazioni che registrano i protocolli nel framework Programmi predefiniti vengono aggiunte automaticamente alle opzioni di Open With per i protocolli.

Per informazioni sulla registrazione per Open With, vedere Introduzione alle associazioni di file.

Menu Start e barra di avvio veloce

Per diventare più individuabili per l'utente, le applicazioni possono aggiungere collegamenti a varie posizioni in Windows. La posizione più comune per aggiungere un collegamento è il menu Start. In Windows Vista e versioni successive, un'applicazione crea un collegamento nella cartella nascosta %ProgramData%\Microsoft\Windows\Start Menu\Programmi da visualizzare nell'elenco di programmi Start menu per tutti gli utenti. In genere, un'applicazione aggiunge una sottocartella che contiene il collegamento.

Per i programmi di browser e di posta elettronica, il menu Start di Windows Vista presenta anche due collegamenti dedicati all'esterno dell'elenco dei programmi, intitolati in modo canonico Internet e di posta elettronica . Dopo la registrazione di un'applicazione per tali categorie, il framework Programmi predefiniti può gestire ciò che viene avviato tramite tali collegamenti.

Nota

I collegamenti dedicati Internet e posta elettronica nel menu Start non sono più presenti a partire da Windows 7.

 

Per aumentare ulteriormente l'individuabilità, le applicazioni possono anche aggiungere collegamenti al desktop e alla barra di avvio veloce. Le applicazioni devono chiedere all'utente l'autorizzazione (in genere durante l'installazione o alla prima esecuzione) prima di aggiungere un'icona al menu Start, desktop o barra di avvio veloce.

Nota

La barra di avvio veloce non è più disponibile a partire da Windows 7. L'alternativa di Windows 7 consiste nell'aggiungere l'applicazione alla barra delle applicazioni, ma l'aggiunta non può essere eseguita a livello di codice perché è strettamente una scelta dell'utente.

 

Per altre informazioni, vedere gli argomenti seguenti:

Installazione e impostazioni predefinite dell'applicazione

Le procedure di installazione delle applicazioni non sono cambiate fondamentalmente da Windows XP, ad eccezione di una nuova linea guida per i sistemi che eseguono versioni di Windows precedenti a Windows 8: accettare le impostazioni predefinite per computer al momento dell'installazione, ma non impostare impostazioni predefinite per utente fino a quando tale utente non esegue prima l'applicazione. (Consultare Primo avvio dell'applicazione e impostazioni predefinite.) Le applicazioni non devono impostare le impostazioni predefinite dell'utente durante l'installazione perché esistono situazioni in cui la persona che installa l'applicazione non è l'utente previsto. A partire da Windows 8, le impostazioni predefinite per computer non sono supportate e le applicazioni non possono modificare le impostazioni predefinite per utente.

Durante l'installazione, un'applicazione deve copiare i file binari nel disco rigido e scriverne i ProgID nel Registro di sistema. L'applicazione deve anche registrarsi per i Programmi Predefiniti e Open With in questo momento per ogni associazione di file che è un candidato per essere gestito. L'applicazione può usare la sottochiave OpenWithProgIds per la registrazione con Open With.

Per altre informazioni, vedere gli argomenti seguenti:

Aggiornamenti e impostazioni predefinite dell'applicazione

Molte applicazioni hanno la possibilità di aggiornarsi nel tempo. Questa procedura di aggiornamento non deve modificare lo stato delle impostazioni predefinite per utente perché tale modifica sarebbe imprevista per l'utente. Tuttavia, è accettabile che un'applicazione controlli le associazioni di file a livello di computer e li ripristina se sono stati danneggiati.

Primo avvio e impostazioni predefinite dell'applicazione

Nota

A partire da Windows 8, il sistema gestisce questa procedura per conto di tutte le applicazioni. Le applicazioni stesse non possono più eseguire query e modificare le impostazioni predefinite. Solo l'utente può farlo. Pertanto, le applicazioni non devono tentare di eseguire query per l'impostazione predefinita corrente o modificare tale impostazione predefinita tramite qualsiasi meccanismo. Tuttavia, le applicazioni possono fornire un punto di ingresso ai programmi predefiniti nel Pannello di controllo chiamando il metodo LaunchAdvancedAssociationUI dell'interfaccia IApplicationAssociationRegistrationUI.

 

Con l'introduzione delle impostazioni predefinite per utente in Windows Vista, è importante che le applicazioni che contestino le estensioni di file più diffuse offrono un'esperienza utente comune per richiedere queste estensioni. Poiché queste impostazioni predefinite sono ora impostate nel contesto dell'utente, devono presentarsi come una possibilità predefinita solo quando l'utente esegue il programma dopo l'installazione.

Le linee guida per stabilire le impostazioni predefinite per utente sono le seguenti: quando un'applicazione viene eseguita per la prima volta per un utente specifico, l'applicazione deve richiedere le preferenze utente per le associazioni predefinite e di file per se stessa.

L'interfaccia utente consigliata deve fornire due scelte chiare all'utente:

  1. Accettare tutte le impostazioni predefinite che l'applicazione desidera impostare. Questa opzione può anche impostare altre proprietà predefinite dell'applicazione, ad esempio privacy o impostazioni di aggiornamento automatico. Questa opzione consente all'applicazione di richiedere tutte le impostazioni predefinite registrate.
  2. Personalizzare accettando o non accettando singolarmente le selezioni predefinite e le impostazioni del programma. Questa opzione presenta un'altra interfaccia utente che consente all'utente di effettuare scelte granulari per le opzioni predefinite.

Per altre informazioni, vedere Programmi predefiniti.

Nota

Questo non è supportato a partire da Windows 8.

 

Dopo la registrazione di un'applicazione con programmi predefiniti in Windows Vista e versioni successive, alcune API diventano disponibili per l'applicazione. Ad esempio, un'applicazione potrebbe dover verificare se si tratta del programma predefinito. L'interfaccia IApplicationAssociationRegistration fornisce metodi per eseguire questa operazione.

Qualsiasi applicazione che vuole richiedere le impostazioni predefinite deve prima chiedere all'utente e non richiedere mai le impostazioni predefinite senza autorizzazione. All'utente deve essere chiesto se desidera impostare l'applicazione come predefinita o lasciare il valore predefinito corrente. Dovrebbe anche esserci un'opzione per non essere nuovamente posta questa domanda dopo che l'utente ha fatto la propria scelta.

Per altre informazioni, vedere Programmi predefiniti.

Suggerimenti per la compatibilità delle applicazioni

Questa sezione fornisce alcuni suggerimenti per la compatibilità delle applicazioni correlati all'esperienza Programmi predefiniti in Windows.

Evitare l'attivazione della virtualizzazione Per-User

Con l'ambiente di controllo dell'account utente, le applicazioni devono essere sempre eseguite con diritti utente standard solo per un'esperienza ottimale del cliente. Per motivi di sicurezza, le applicazioni con un livello di privilegi utente standard non possono scrivere in determinate parti del Registro di sistema e in determinati file di sistema. Windows Vista e versioni successive di Windows offrono un livello di compatibilità delle applicazioni (AppCompat) temporaneo per consentire alle applicazioni di eseguire la transizione. I tentativi bloccati di scrivere nel Registro di sistema o nei file di sistema vengono "virtualizzati" in modo che l'applicazione continui a essere eseguita, ma le aree sensibili del sistema non vengono modificate. Tuttavia, le applicazioni non devono basarsi sulla tecnologia AppCompat come soluzione a lungo termine. Al contrario, le applicazioni devono usare i numerosi strumenti disponibili per verificare che possano essere eseguiti correttamente in base ai diritti utente standard. A tale scopo, potrebbe essere necessaria una riprogrammazione dell'applicazione, ma dovrebbe essere eseguita nell'interesse della compatibilità a lungo termine.Some reprogramming of the application might be required to do this, but it should be done in the interest of long-term compatibility.

Evitare avvisi o blocchi di AppCompat dall'Assistente per la compatibilità dei programmi

L'Assistente compatibilità programmi (PCA) viene fornito in Windows Vista e versioni successive. Il suo scopo è fornire un metodo automatizzato per migliorare il funzionamento dei programmi meno recenti con problemi di compatibilità. Il PCA monitora i programmi per problemi noti. Se viene rilevato un problema, invia una notifica all'utente del problema e offre di applicare soluzioni efficaci prima che l'utente esegua nuovamente il programma. Per evitare di visualizzare questi avvisi o blocchi, gli ISV devono usare i numerosi strumenti disponibili per assicurarsi che le applicazioni siano compatibili con Windows Vista, Windows 7 e versioni successive.

Supporto per le versioni precedenti del sistema operativo Windows

L'infrastruttura Programmi predefiniti non è disponibile in alcun sistema operativo Windows prima di Windows Vista. Pertanto, quando le applicazioni passano alla nuova infrastruttura Programmi predefiniti, devono conservare il codice predefinito dell'applicazione precedente per mantenere la compatibilità con le versioni precedenti di Windows. Un'applicazione deve eseguire un controllo della versione del sistema operativo come parte dell'installazione per determinare il codice predefinito dell'applicazione da eseguire.

Per supportare un aggiornamento da Windows XP a Windows Vista o versione successiva, le applicazioni devono aggiungere tutte le voci del Registro di sistema necessarie per i programmi predefiniti anche quando vengono installati in un computer che esegue Windows XP. La registrazione non avrà alcun effetto su un computer che esegue Windows XP, ma se il computer viene aggiornato in un secondo momento, l'applicazione sarà già registrata e in grado di sfruttare il framework.

Per altre informazioni, vedere OSVERSIONINFO.

Risorse aggiuntive

procedure consigliate per le associazioni di file

scenario di esempio di associazione file

programmi predefiniti

Utilizzo dell' Set Program Access and Computer Defaults (SPAD)