Skip to content

Conversation

tomlm
Copy link

@tomlm tomlm commented Feb 26, 2024

  • add new feature flag to EnableStartWindow
  • add localized resources for new option
  • Added IAppVisibility implementation that monitors the changes to the start Menu visibility
  • Add new StartWindowActivation class which monitors Start Menu visibility, and when windows attempts to show the start menu we Toggle the visibility of WinLauncher, which hides the real start menu
  • Correctly clean up when exiting to due to exception
  • Correctly clean up when exiting by quitting

NOTE 1: The WIN global key hook doesn't work on my machine. It definitely doesn't work on my ARM machine. This seems to remove need to have WIN key global keyboard hook. I didn't remove WIN key, but this implementation is I think more robust and platform independent because it doesn't inject DLLs into all processes and also supports any way that the start menu gets activated today, (gestures, hot keys, programmatic, etc.)

NOTE 2: This uses the Vanara.Pinvoke.xxx library which is all of the PInvoke defintions for windows and which made it trivially easy to implement this. I think it might be good to replace all of the random DllImports in WinLaunch with a standard library like this. Figuring out all of the appropriate COM attributes to make the IAppVisibility work without this library would have been very error-prone and laborious.

Thanks for building WinLaunch! :)

* add new feature flag to replace Start Menu
* added resources for new option
* IAppVisibility implementation that monitos the changes to the start Menu visibility
* Add new StartWindowActivation class which monitors app visibility, when windows attempts to show start menu we Toggle visbility of WinLauncher. hiding the real start menu
* Correctly clean up when executing to due to exception
* Correctly clean up when executing by quitting

NOTE: This seems to remove need to have WIN key global keyboard hook. I didn't remove WIN key, but this implementation is more robust because it doesn't inject DLLs into all processes and also supports things like gestures that show the start menu.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant