mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-12-23 00:17:58 +08:00
4e202e4523
* 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
93 lines
5.0 KiB
Markdown
93 lines
5.0 KiB
Markdown
# 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](https://learn.microsoft.com/windows/win32/sysinfo/registry).
|
|
|
|
For advanced information about the Windows registry, see [Windows registry information for advanced users](https://learn.microsoft.com/troubleshoot/windows-server/performance/windows-registry-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`
|