microsoft / microsoft/WindowsAppSDK

ActivationRegistrationManager Machine Wide

Open
#5,345 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area-Lifecycle feature proposal needs-triage
Dominant language
C++
Stars
4.7k
Forks
471
Avg merge
3d 13h
Merged PRs (30d)
28

Description

Looking into the feasibility of making some of the ActivationRegistrationManager register methods work for machine wide installs / installers (such as RegisterForProtocolActivation and RegisterForStartupActivation), possibly by passing an optional parameter (CurrentUser / LocalMachine). Obviously MachineWide would require privileged access to write to HKEY_LOCAL_MACHINE

RegisterForStartupActivation seems fairly simple, a single registry entry in XX\Software\Microsoft\Windows\CurrentVersion\Run.

RegisterForProtocolActivation looks like it's a bit more involved with Assoc registry entries, but I assume these could also be written in HKEY_LOCAL_MACHINE vs HKEY_CURRENT_USER?

Context

Looking at installing a WinUI Unpackaged app machine wide. Would love to call the WinAppSDK APIs during the install / uninstall process vs trying to do this in the current user process (registering is easy, unregistering on uninstall gets tricky).

Alternatively I could simulate what WinAppSDK does (I assume these APIs are pretty stable) and write the code myself in the installer.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the ActivationRegistrationManager methods named in the issue, especially RegisterForProtocolActivation and RegisterForStartupActivation. Compare their current-user registry behavior with the proposed HKEY_LOCAL_MACHINE paths, including the Assoc entries and the Run entry. Done means establishing whether machine-wide registration and corresponding unregistration can be supported for privileged installers.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.