Sdílet prostřednictvím


Zápis do úložiště uživatelských nastavení

Uživatelská nastavení jsou zapisovatelná nastavení, jako jsou nastavení v dialogovém okně Nástroje / Možnosti , okna vlastností a některá další dialogová okna. Rozšíření sady Visual Studio je můžou použít k ukládání malých objemů dat. Tento návod ukazuje, jak přidat Poznámkový blok do sady Visual Studio jako externí nástroj čtením a zápisem do úložiště uživatelských nastavení.

Zápis do úložiště uživatelských nastavení

  1. Vytvořte projekt VSIX s názvem User Nastavení StoreExtension a přidejte vlastní příkaz s názvem User Nastavení StoreCommand. Další informace o tom, jak vytvořit vlastní příkaz, naleznete v tématu Vytvoření rozšíření pomocí příkazu nabídky.

  2. Do souboru User Nastavení StoreCommand.cs přidejte následující direktivy using:

    using System.Collections.Generic;
    using Microsoft.VisualStudio.Settings;
    using Microsoft.VisualStudio.Shell.Settings;
    
  3. V MenuItemCallback odstraňte tělo metody a získejte úložiště uživatelských nastavení následujícím způsobem:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    }
    
  4. Teď zjistíte, jestli je Poznámkový blok už nastavený jako externí nástroj. Abyste zjistili, jestli je nastavení ToolCmd "Poznámkový blok", musíte iterovat všemi externími nástroji, a to následujícím způsobem:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    
        // Find out whether Notepad is already an External Tool.
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");
        bool hasNotepad = false;
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
        for (int i = 0; i < toolCount; i++)
        {
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)
            {
                hasNotepad = true;
                break;
            }
        }
    }
    
    
  5. Pokud Poznámkový blok nebyl nastaven jako externí nástroj, nastavte ho následujícím způsobem:

    private void MenuItemCallback(object sender, EventArgs e)
    {
        SettingsManager settingsManager = new ShellSettingsManager(ServiceProvider);
        WritableSettingsStore userSettingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
    
        // Find out whether Notepad is already installed.
        int toolCount = userSettingsStore.GetInt32("External Tools", "ToolNumKeys");
        bool hasNotepad = false;
        CompareInfo Compare = CultureInfo.InvariantCulture.CompareInfo;
        for (int i = 0; i < toolCount; i++)
        {
            if (Compare.IndexOf(userSettingsStore.GetString("External Tools", "ToolCmd" + i), "Notepad", CompareOptions.IgnoreCase) >= 0)
            {
                hasNotepad = true;
                break;
            }
        }
    
        string message = (hasNotepad) ? "Notepad already installed" : "Installing Notepad";
         if (!hasNotepad)
        {
            userSettingsStore.SetString("External Tools", "ToolTitle" + toolCount, "&Notepad");
            userSettingsStore.SetString("External Tools", "ToolCmd" + toolCount, "C:\\Windows\\notepad.exe");
            userSettingsStore.SetString("External Tools", "ToolArg" + toolCount, "");
            userSettingsStore.SetString("External Tools", "ToolDir" + toolCount, "$(ProjectDir)");
            userSettingsStore.SetString("External Tools", "ToolSourceKey" + toolCount, "");
            userSettingsStore.SetUInt32("External Tools", "ToolOpt" + toolCount, 0x00000011);
    
            userSettingsStore.SetInt32("External Tools", "ToolNumKeys", toolCount + 1);
        }
    }
    
  6. Otestujte kód. Nezapomeňte, že přidává Poznámkový blok jako externí nástroj, takže před jeho dalším spuštěním je nutné vrátit registr zpět.

  7. Sestavte kód a spusťte ladění.

  8. V nabídce Nástroje klepněte na tlačítko Vyvolat uživatele Nastavení StoreCommand. Tím přidáte Poznámkový blok do nabídky Nástroje.

  9. Teď byste měli vidět Poznámkový blok v nabídce Nástroje / Možnosti a kliknutím na Poznámkový blok by se měla zobrazit instance Poznámkový blok.