dobefore / mslnk

Rust implementation to create Windows shortcut (ms shell .lnk)
10 stars 2 forks source link

Feature Request: Support setting and reading AppUserModelId #3

Open timfish opened 2 years ago

timfish commented 2 years ago

Thank you. This create is great and super helpful!

The only important thing (for me) that appears to be missing is the ability to set the AppUserModelId of the shortcut: https://docs.microsoft.com/en-us/windows/win32/shell/appids#where-to-assign-an-appusermodelid

This allows the taskbar to identify the proper shortcut to pin and ensures that windows belonging to the process are appropriately associated with that taskbar button

Without this value set on the shortcut, Windows cannot link it up and group windows on the Taskbar or correctly support pinning an app to the Taskbar. So if you are creating shortcuts to an executable, this property is a hard requirement for everything to work as expected.

This Chromium doc goes into a bit of detail as to how this property gets used by Windows in their case: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_shortcut_and_taskbar_handling.md

I have briefly looked into how complicated it would be to add this feature and it would need to implement reading and writing the IPropertyStore structure in extra data first. Not a simple task!

dobefore commented 2 years ago

You mean these message in search panel? Quicker_20220331_183046

I wil try to implement this in a few months.