Sdílet prostřednictvím


Správa výchozích aplikací

Funkce Nastavit programový přístup a výchozí nastavení počítače (SPAD) byla přidána do systému Windows XP a novějších verzí systému Windows pro správu výchozích hodnot pro jednotlivé počítače. Kromě SPAD systém Windows Vista zavedl koncept výchozích aplikací pro jednotlivé uživatele a položku Výchozí programy položku v Ovládacích panelech.

Důležitý

Toto téma se nevztahuje na Windows 10. Způsob, jakým výchozí přidružení souborů fungují ve Windows 10, se změnila. Další informace najdete v části Změny způsobu, jakým Windows 10 zpracovává výchozí aplikace v tento příspěvek.

 

Výchozí nastavení pro jednotlivé uživatele jsou specifická pro individuální uživatelský účet v systému. Pokud jsou k dispozici výchozí nastavení pro jednotlivé uživatele, mají přednost před odpovídajícími výchozími nastaveními pro jednotlivé počítače pro daný účet. Od systému Windows 8 je systém výchozích nastavení pro typ souboru a protokol výhradně určen pro jednotlivé uživatele a ignorují se výchozí nastavení pro počítače. SPAD se také ve Windows 8 změnil tak, aby nastavil výchozí hodnoty pro jednotlivé uživatele.

  • V systémech se systémem Windows starších než Windows 8 obdrží nově vytvořený uživatelský účet výchozí hodnoty pro jednotlivé počítače, dokud se nenaváže výchozí hodnoty pro jednotlivé uživatele. V systému Windows Vista a novějších mohou uživatelé použít položku Výchozí programy položku v Ovládacích panelech k nastavení nebo změně výchozích hodnot pro jednotlivé uživatele. Kromě toho je možné při prvním spuštění aplikace nastavit výchozí hodnoty pro jednotlivé uživatele pomocí pokynů, které následují v části První spuštění a výchozí nastavení aplikace.
  • V systémech se systémem Windows 8 se nově vytvořený uživatelský účet spoléhá na výchozí hodnoty pro jednotlivé uživatele od začátku a nastavení těchto výchozích hodnot při prvním spuštění, jak je vysvětleno v části První spuštění aplikace a výchozí nastavení oddílu se už nepodporuje.

Aplikace musí zaregistrovat jak SPAD, tak funkci Výchozí programy, aby byla nabízena jako výchozí program v systému Windows Vista a novější.

Toto téma poskytuje nezávislým dodavatelům softwaru (ISV) rychlý průvodce kroky potřebné k registraci a správě výchozích hodnot aplikací v systému Windows Vista a novějších verzích. Odkazy jsou poskytnuty k podrobnějším článkům k tématům každé sekce.

Výchozí položka programů v Ovládacích panelech

Výchozí programy je funkce představená v systému Windows Vista, přístupná přímo z nabídky Start a také Ovládací panely. Poskytuje novou infrastrukturu, která funguje se standardním uživatelským oprávněním (bez zvýšených oprávnění) a je navržená tak, aby uživatelům a aplikacím umožňovala spravovat výchozí hodnoty pro jednotlivé uživatele. Výchozí programy uživatelům poskytují jednotný a snadno přístupný způsob správy výchozích hodnot, přidružení souborů a nastavení automatického přehrávání ve všech aplikacích v systému. Pro aplikace nabízí použití oboru pro jednotlivé uživatele poskytovaného rozhraními API výchozích programů následující výhody:

  • Žádné zvýšení

    Aplikace nemusí zvyšovat své oprávnění k nastavení výchozích hodnot.

  • dobré občanství

    Na počítači s více uživateli může každý uživatel vybrat různé výchozí aplikace.

  • Správa výchozího nastavení

    Výchozí rozhraní API programů nabízejí spolehlivý a konzistentní mechanismus pro samoobslužnou kontrolu výchozího stavu a uvolnění ztraceného nastavení bez nutnosti zapisovat přímo do registru. Od Windows 8 ale nedoporučujeme, aby aplikace dotazoval výchozí stav, protože aplikace už nemůže změnit výchozí nastavení – tyto změny může provést jenom uživatel.

Pokud chcete aplikaci umožnit efektivní správu výchozích hodnot, musíte aplikaci zaregistrovat jako potenciální výchozí program. Podrobnosti o registraci a používání rozhraní API výchozích programů najdete v tématu Výchozí programy.

Výchozí programy také poskytují tyto dvě funkce:

  • Uživatelské rozhraní opakovaně použitelných výchozích nastavení

    Uživatelské rozhraní výchozích nastavení programů i přidružení souborů (Nastavit výchozí programy) a (Přidružení typu souboru nebo protokolu k programu) mohou být znovu použity a volány v rámci aplikace. To umožňuje aplikacím poskytovat standardní uživatelské prostředí pro správu výchozích nastavení a chrání výrobce softwaru před nutností vyvíjet vlastní nebo ekvivalentní uživatelské rozhraní.

  • zahrnutí adres URL a marketingových informací

    V rámci Nastavit výchozí programy stránce Výchozí programy položku v Ovládacích panelech může aplikace poskytnout marketingové informace a odkaz na web dodavatele. Tato adresa URL je odvozena od certifikátu Authenticode, ke kterému byla aplikace podepsána. Tím zabráníte zneužití a neoprávněnému nahrazení tohoto odkazu. Pokud má aplikace certifikát Authenticode, který obsahuje vloženou adresu URL, uživatelské rozhraní systému Windows zobrazí vloženou adresu URL. Nezávislí výrobci softwaru by měli tuto funkci využít k tomu, aby uživatele nasměrovali na jejich web, aby získali informace o aktualizacích a dalších souborech ke stažení.

Nastavení výchozího nastavení přístupu k programu a počítače

Nastavit výchozí nastavení přístupu k programu a počítačů (SPAD) umožňuje správcům spravovat výchozí hodnoty pro celý počítač, které dědí všichni noví uživatelé daného počítače. Před Windows 8 mohli správci díky SPAD také opravovat přidružení souborů, pokud se přeruší po odebrání programů ze systému. Od Windows 8 ale SPAD ovlivňuje pouze výchozí hodnoty specifické pro uživatele.

Další informace o registraci aplikace v SPAD naleznete v tématu Práce s nastavením programu pro přístup a výchozími nastaveními počítače (SPAD) a Registrace programů s typy klientů. Konkrétní změny a nová doporučení jsou popsány v následujících částech.

Nastavení výchozích hodnot v SPADU

Výchozí nastavení pro jednotlivé uživatele mají přednost před výchozím nastavením pro jednotlivé počítače.

  • Před Windows 8: Výchozí hodnoty nastavené ve SPAD (které jsou na úrovni počítače) se uživatelům nezobrazí, pokud jsou nastaveny odpovídající výchozí hodnoty pro jednotlivé uživatele. Pokud uživatel nenastavil výchozí hodnotu pro jednotlivé uživatele, použije systém odpovídající výchozí nastavení počítače. Nové uživatelské účty na počítači zpočátku dědí výchozí hodnoty počítače. Při prvním spuštění aplikace by aplikace měla uživatele vyzvat, aby přiřadil výchozí hodnoty pro jednotlivé uživatele. Viz První spuštění aplikace a její výchozí nastavení.
  • OdWindows 8: Všechna výchozí nastavení jsou pro uživatele a veškeré výchozí nastavení na počítač se ignoruje. Aplikace už nemůžou nastavit výchozí možnosti, takže nemůžou uživatele projít jejich přiřazením těchto výchozích hodnot.

Pokud aplikace pro systémy starší než Windows 8 používá Nastavit jako výchozí v SPAD, je třeba dodržet následující pokyny:

  • Aplikace by měly prostřednictvím SPAD deklarovat pouze výchozí hodnoty na úrovni počítače.
  • Aplikace by neměly uplatňovat výchozí nastavení pro jednotlivé uživatele prostřednictvím SPAD.

Když aplikace pro Windows 8 implementuje funkci Nastavit jako výchozí v SPAD, musí zaregistrovat své typy souborů a protokoly ve Výchozích programech, přičemž je nutné použít stejný název aplikace, který je použit v SPAD. To umožňuje, aby změna v SPADU odrážela jako změnu v odpovídající položce Výchozí programy pro aktuálního uživatele.

Skrytí přístupu v SPADU

Možnost skrytí přístupu pro každou možnou výchozí hodnotu v SPADU je přístupná jedním ze dvou způsobů:

  • Zvolte kategorii výchozích nastavení jiné společnosti než Microsoft, která odebere přístup ke všem výchozím nastavením Microsoftu.
  • Zvolte kategorii Vlastní a zrušte zaškrtnutí políčka Povolit přístup k tomuto programu.

Dříve provedení některé z těchto akcí odebralo všechny vstupní body do příslušných aplikací v systému. Konkrétní pokyny pro tuto situaci nařizují odebrat zkratky a ikony z následujících umístění:

  • Plocha
  • Nabídka Start
  • Panel Snadné spuštění (pouze Windows Vista a dřívější verze)
  • Oznamovací oblast
  • Kontextové nabídky
  • Skupina úloh složek

Dodavatelé jsou vybízeni implementovat tyto pokyny ve funkci zpětného volání Hide Access aplikace.

Alternativní metoda skrytí přístupu v SPAD

U některých starších aplikací nemusí být úplná implementace funkce Hide Access praktická. Alternativní metoda, která dosáhne stejného efektu, ale není snadno nevratná uživatelem, je odinstalovat aplikaci. Následující příklad ukazuje ukázkové chování a ukázkový kód pro implementaci.

Doporučené uživatelské prostředí pro tuto alternativu je následující:

  • Když uživatel zruší zaškrtnutí v poli Povolit přístup k tomuto programu v SPAD, zobrazí se následující uživatelské rozhraní.

    dialogové okno vista o skrytí přístupu k programu

  • Když uživatel klikne na OK, zobrazí se položka Programy a funkce v Ovládacích panelech, aby uživatel mohl aplikaci odinstalovat.

  • Uživatelům systému Windows XP by se mělo zobrazit následující dialogové okno.

    dialogové okno windows xp o skrytí přístupu k programu

  • Když uživatel systému Windows XP klikne na OK, zobrazí se položka Přidat nebo odebrat programy v Ovládacích panelech, aby uživatel mohl aplikaci odinstalovat.

Následující kód poskytuje opakovaně použitelnou implementaci pro funkci Skrýt přístup, jak je uvedeno výše. Lze jej použít v systémech Windows XP, Windows Vista a 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;
}

Registrace vstupních bodů aplikace

Aplikace může mít v operačním systému mnoho vstupních bodů. Pro vstupní body se doporučuje následující umístění:

  • Plocha
  • Nabídka Start
  • Panel Snadné spuštění (pouze Windows Vista a dřívější verze)
  • Oznamovací oblast
  • Místní nabídky
  • Pás úloh pro složky

Tato část se zaměřuje na tyto konkrétní oblasti:

Otevřít v aplikaci

Místní nabídka Otevřít v umožňuje uživateli vybrat aplikaci, která dokáže zpracovat určitý typ souboru. I když Open With lze použít k jednorázovému otevření souboru v aplikaci, lze ho použít také k nastavení výchozí přípony názvu souboru. Aplikace by se proto měla vždy zaregistrovat pro Otevřít pomocí, aby byla uživatelům tato aplikace zobrazena jako možnost. Aplikace mohou zaregistrovat jak typy souborů, tak protokoly pro Open With. Aplikace, které registrují protokoly v rozhraní Výchozí programy, se automaticky přidají do možností Open With pro protokoly.

Pro informace o registraci k Otevřít vnaleznete v tématu Úvod do asociací souborů.

Nabídka Start a panel Snadné spuštění

Aby byly aplikace pro uživatele lépe objevitelnými, mohou aplikace přidávat zástupce do různých míst v systému Windows. Nejběžnějším místem pro přidání zástupce je nabídka Start. V systému Windows Vista a novější aplikace vytvoří zástupce ve skryté složce %ProgramData%\Microsoft\Windows\Start Menu\Programy, aby se zobrazila v nabídce Start v seznamu programů pro všechny uživatele. Aplikace obvykle přidá podsložku, která obsahuje zástupce.

V prohlížeči a e-mailových programech se v nabídce Start Start zobrazí také dva vyhrazené odkazy mimo seznam programů, kanonicky s názvem internet a e-mailová. Jakmile se aplikace zaregistruje pro tyto kategorie, může rozhraní Výchozí programy spravovat, co je spuštěno prostřednictvím těchto odkazů.

Poznámka

Odkazy na nabídky Internet a e-mail vyhrazené nabídky Start už nejsou k dispozici jako Windows 7.

 

Aby se zvýšila zjistitelnost, můžou aplikace také přidávat zástupce na plochu a panel Snadné spuštění. Aplikace by měly uživatele požádat o oprávnění (obvykle během instalace nebo při prvním spuštění) před přidáním ikony do nabídky Start, plochy nebo panelu Snadné spuštění.

Poznámka

Panel Snadné spuštění už není k dispozici ve Windows 7. Alternativou systému Windows 7 je připnout aplikaci na hlavní panel, ale připnutí nelze provést programově, protože se jedná o výhradně volbu uživatele.

 

Další informace najdete v těchto tématech:

Instalace a výchozí nastavení aplikace

Postupy instalace aplikací se od systému Windows XP zásadně nezměnily, s výjimkou nových pokynů pro systémy se systémem Windows starších než Windows 8: zabírají výchozí nastavení jednotlivých počítačů v době instalace, ale nenastavují žádné výchozí hodnoty pro jednotlivé uživatele, dokud tento uživatel aplikaci poprvé nespustí. (Viz první spuštění a výchozí nastavení aplikace.) Aplikace by neměly během instalace nastavit výchozí hodnoty pro jednotlivé uživatele, protože existují situace, kdy osoba, která aplikaci instaluje, není zamýšleným uživatelem. Od windows 8 se výchozí nastavení pro jednotlivé počítače nepodporuje a aplikace nemůžou měnit výchozí nastavení pro jednotlivé uživatele.

Během instalace by aplikace měla zkopírovat binární soubory na pevný disk a zapisovat své identifikátory ProgID do registru. Aplikace by se také měla zaregistrovat do výchozích programů a Otevřít s v tomto okamžiku pro každé přidružení souboru, pro které je kandidátem na zpracování. Aplikace může použít podklíč OpenWithProgIds k registraci v Open With.

Další informace najdete v těchto tématech:

Upgrady a výchozí hodnoty aplikací

Mnoho aplikací má možnost se v průběhu času upgradovat. Tento postup upgradu by neměl měnit stav výchozích hodnot pro jednotlivé uživatele, protože by tato změna byla pro uživatele neočekávaná. Je však přijatelné, aby aplikace zkontrolovala přidružení souborů na úrovni počítače a opravila je, pokud byly poškozené.

První spuštění a výchozí nastavení aplikace

Poznámka

Od systému Windows 8 systém tento postup zpracovává jménem všech aplikací. Samotné aplikace se už nemůžou dotazovat a měnit výchozí hodnoty. To může udělat jenom uživatel. Aplikace by se proto neměly pokoušet dotazovat na aktuální výchozí nebo změnit výchozí nastavení prostřednictvím jakéhokoli mechanismu. Aplikace však mohou poskytnout vstupní bod výchozí programy v Ovládacích panelech voláním LaunchAdvancedAssociationUI metodaIApplicationAssociationRegistrationUI rozhraní.

 

Se zavedením výchozích hodnot pro jednotlivé uživatele v systému Windows Vista je důležité, aby aplikace, které soutěží o oblíbené přípony názvů souborů, poskytují společné uživatelské prostředí pro deklaraci těchto rozšíření. Vzhledem k tomu, že tyto výchozí hodnoty jsou nyní nastaveny v kontextu uživatele, měly by se prezentovat jako výchozí možnost pouze tehdy, když uživatel spustí program po instalaci.

Toto je vodítko pro nastavení výchozích hodnot pro jednotlivé uživatele: Při prvním spuštění aplikace pro konkrétního uživatele by tato aplikace měla požadovat uživatelské předvolby pro výchozí hodnoty a přidružení souborů pro sebe.

Doporučené uživatelské rozhraní by mělo poskytnout uživateli dvě jasné volby:

  1. Přijměte všechny výchozí hodnoty, které by aplikace chtěla deklarovat. Tato možnost může také nastavit další výchozí vlastnosti aplikace, jako je ochrana osobních údajů nebo nastavení automatické aktualizace. Tato možnost umožňuje aplikaci deklarovat všechny zaregistrované výchozí hodnoty.
  2. Přizpůsobte tak, že přijmete nebo nepřijmete výchozí výběry a nastavení programu jednotlivě. Tato možnost představuje další uživatelské rozhraní, které uživateli umožňuje provádět podrobné volby výchozích možností.

Další informace naleznete v tématu Výchozí programy.

Poznámka

Toto není podporováno od Windows 8.

 

Jakmile se aplikace zaregistruje ve Výchozím programu v systému Windows Vista a novějších verzích, budou pro aplikaci k dispozici určitá rozhraní API. Aplikace může například potřebovat zkontrolovat, jestli se jedná o výchozí program. Rozhraní IApplicationAssociationRegistration poskytuje metody, jak to provést.

Každá aplikace, která chce deklarovat výchozí hodnoty, musí nejprve požádat uživatele a nikdy bez oprávnění ohlásit výchozí hodnoty. Uživatel by se měl zeptat, jestli chce, aby aplikace byla výchozí, nebo ponechala aktuální výchozí nastavení. Po výběru uživatele by také měla být možnost, aby se tato otázka znovu nepotázala.

Další informace naleznete v tématu Výchozí programy.

Tipy pro kompatibilitu aplikací

Tato část obsahuje některé tipy pro kompatibilitu aplikací související s výchozím prostředím programů ve Windows.

Vyhněte se aktivaci virtualizace Per-User

S prostředím řízení uživatelských účtů (UAC) by se aplikace měly vždy spouštět pouze se standardními uživatelskými právy, pro co nejlepší uživatelský zážitek. Z bezpečnostních důvodů jsou aplikace se standardní úrovní oprávnění uživatele blokované v zápisu do určitých částí registru a do určitých systémových souborů. Windows Vista a novější verze Windows poskytují dočasnou vrstvu kompatibility aplikací (AppCompat), která pomáhá aplikacím s přechodem. Blokované pokusy o zápis do registru nebo do systémových souborů jsou "virtualizované", aby aplikace pokračovala ve spuštění, ale citlivé oblasti systému se nemění. Aplikace by se ale neměly spoléhat na technologii AppCompat jako dlouhodobé řešení. Místo toho by aplikace měly používat mnoho dostupných nástrojů k ověření úspěšného spuštění ve standardních uživatelských právech. Některé přeprogramování aplikace může být nutné k tomu, ale mělo by to být provedeno v zájmu dlouhodobé kompatibility.

Vyhněte se upozorněním nebo blokům z Pomocníka pro kompatibilitu aplikací

Program Compatibility Assistant (PCA) je k dispozici v systému Windows Vista a novější. Jejím účelem je poskytnout automatizovanou metodu, aby starší programy s problémy kompatibility fungovaly lépe. PCA monitoruje programy v souvislosti se známými problémy. Pokud se zjistí problém, upozorní uživatele na problém a nabídne, aby před opětovným spuštěním programu použil efektivní řešení. Abyste se vyhnuli těmto upozorněním nebo blokům, měli by nezávislí výrobci softwaru používat mnoho dostupných nástrojů k zajištění kompatibility svých aplikací se systémem Windows Vista, Windows 7 a novějším.

Podpora předchozích verzí operačního systému Windows

Infrastruktura výchozích programů není k dispozici v žádném operačním systému Windows před systémem Windows Vista. Proto když se aplikace přesunou na novou infrastrukturu výchozích programů, měly by si zachovat svůj starší kód výchozích aplikací, aby zachovaly kompatibilitu se staršími verzemi Windows. Aplikace by měla v rámci instalace spustit kontrolu verze operačního systému, aby určila, který kód výchozího nastavení aplikace se má spustit.

Chcete-li podporovat upgrade ze systému Windows XP na systém Windows Vista nebo novější, aplikace by měly přidat všechny položky registru požadované pro výchozí programy, i když jsou nainstalovány v počítači se systémem Windows XP. Registrace nebude mít žádný vliv na počítač se systémem Windows XP, ale pokud je počítač později upgradován, bude aplikace již zaregistrována a bude moci využívat výhod architektury.

Další informace viz OSVERSIONINFO.

Další zdroje informací

osvědčené postupy pro přidružení souborů

Ukázkový scénář přidružení souborů

výchozí programy

Práce s nastavením přístupu k programům a výchozím nastavením počítače (SPAD)