Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to add "Play FM with AngelLoader" or similar to Explorer context menu #85

Open
FenPhoenix opened this issue Dec 20, 2021 · 1 comment
Assignees

Comments

@FenPhoenix
Copy link
Owner

Someone asked for this. Optional of course, so we don't clutter up the menus if the user doesn't want us to.

@FenPhoenix FenPhoenix added enhancement New feature or request user experience labels Dec 20, 2021
@FenPhoenix FenPhoenix self-assigned this Dec 20, 2021
@FenPhoenix
Copy link
Owner Author

FenPhoenix commented Dec 21, 2021

So it looks like this is way harder than it sounds. It's true we can easily add an item like "Play in AngelLoader" to the context menu through simple registry additions, but:

  • If n files are selected at once and the option is clicked, it simply starts the associated app n times, passing one file for each app instance. There's no way to have it bundle them all up and send them all at once to one instance (with the simple registry-based extension association method).
  • If we want to handle multiple files then we need to write a shell extension, and then it's not recommended to use managed code so we would want to write it in native C++. And it looks hellish to do.
  • If we did write a shell extension we would have to make sure it doesn't contribute towards making the context menu take literal seconds to load as it does on my system (I need to trial-and-error to see what exactly is being so rude as to cause that...)
  • In any case, we would need to pass the received filenames to the first instance of the app in case we're already running. We can't do it with our current minimalistic "PostMessage with HWND_BROADCAST and a couple of IntPtrs" approach. We'd need to use pipes, or the new VB-like single-instance event-based communication thing that new .NETs have. We changed this over a while ago so this point, at least, is now a non-issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant