PowerToys/doc/devdocs/modules/launcher/plugins/registry.md
Aaron Junker 4e202e4523
[Docs]Replace docs.micrososft.com with learn.microsoft.com (#20662)
* Update SUPPORT.md

* Update runner.md

* Update guidance.md

* Update convert-stringtable-to-resx.ps1

* Update readme.md

* Update ControlType.cs

* Update README.md

* Update CLSID.h

* Update GenericProperty`1.cs

* Update project-overview.md

* Update interop.cpp

* Update PreviewHandlerBase.cs

* Update indexer.md

* Update common.md

* Update two_way_pipe_message_ipc.cpp

* Update PowerToys.exe.manifest

* Update HotkeySettings.cs

* push

* Update src/tests/win-app-driver/README.md

* Update doc/devdocs/akaLinks.md

* Update doc/devdocs/modules/launcher/plugins/registry.md
2022-09-28 17:18:55 +01:00

5.0 KiB

Registry Plugin

The registry plugin allows users to search the Windows registry.

Special functions (differ from the regular functions)

  • Support full base keys and short base keys (e.g. HKLM for HKEY_LOCALE_MACHINE).
  • Show count of subkeys and count of values in the second result line.
  • Search for value names and value data inside a registry key (syntax: [RegistryKey]\\[ValueName] and [RegistryKey]\\[ValueData])

The Windows Registry

The registry contains all settings for the Windows operating system and many settings of the installed (Windows only) programs.

Note: Linux and macOS program ports typical store the settings in their own configuration files and not in the Windows registry.

For more information about the Windows registry, see the official documentation.

For advanced information about the Windows registry, see Windows registry information for advanced users.

Score

The score is currently not set on the results.

Important for developers

General

  • The assembly name is cached into _assemblyName (to avoid to many calls of Assembly.GetExecutingAssembly())

Results

  • All results override the visible search result via QueryTextDisplay to avoid problems with short registry base keys (e.g. HKLM).
  • The length of a Title and Subtitle is automatic truncated, when it is to long.

Microsoft.Plugin.Registry project

Important plugin values (meta-data)

Name Value
ActionKeyword :
ExecuteFileName Microsoft.PowerToys.Run.Plugin.Registry.dll
ID 303417D927BF4C97BCFFC78A123BE0C8

Interfaces used by this plugin

The plugin use only these interfaces (all inside the Main.cs):

  • Wox.Plugin.IPlugin
  • Wox.Plugin.IContextMenu
  • Wox.Plugin.IPluginI18n
  • System.IDisposable

Program files

File Content
Classes\RegistryEntry.cs Wrapper class for a registry key with a possible exception on access
Constants\KeyName.cs Static used short registry key names (to avoid code and string doubling)
Constants\MaxTextLength.cs Contain all maximum text lengths (for truncating)
Enumeration\TruncateSide.cs Contain the possible truncate sides
Helper\ContextMenuHelper.cs All functions to build the context menu (for each result entry)
Helper\QueryHelper.cs All functions to analyze the search query
Helper\RegistryHelper.cs All functions to search into the Windows registry (via Win32.Registry)
Helper\ResultHelper.cs All functions to convert internal results into WOX results
Helper\ValueHelper.cs All functions to convert values into human readable values
Images\reg.dark.png Symbol for the results for the dark theme
Images\reg.light.png Symbol for the results for the light theme
Properties\Resources.Designer.resx File that contain all translatable keys
Properties\Resources.resx File that contain all translatable strings in the neutral language
Main.cs Main class, the only place that implement the WOX interfaces
plugin.json All meta-data for this plugin

Important project values (*.csproj)

Name Value
TargetFramework net6.0-windows (.NET 5) or net6.0-windows10.0.19041.0 (OS version specific)
LangVersion 8.0 (mean C# 8.0)
Platforms x64
Nullable true
Output ..\..\..\..\..\x64\Debug\modules\launcher\Plugins\Microsoft.Plugin.Registry\
RootNamespace Microsoft.PowerToys.Run.Plugin.Registry
AssemblyName Microsoft.PowerToys.Run.Plugin.Registry

Project dependencies

Projects

  • Wox.Infrastructure
  • Wox.Plugin