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

add program mutex, tray icon, portable install improvement #34

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

add program mutex, tray icon, portable install improvement #34

wants to merge 3 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Dec 9, 2019

  1. no use to run multiple, so add a program mutex to only allow one tallow :)
  2. (close to) tray icon with a controlling menu and program option to control the behaviour
  3. running portable now allows one to completely delete the program folder when done (sys file unlock)
    more comments in the code, you can remove them once/if pull is approved

@basil00
Copy link
Owner

basil00 commented Dec 11, 2019

Thanks for your efforts. I think the mutex and tray icon are good improvements. Uninstalling WinDivert is more tricky since this can interfere with other WinDivert applications that may be running on the system. I need to think about it.

@ghost
Copy link
Author

ghost commented Dec 11, 2019

on the portable uninstall/stop thing, just an idea

//this will only stop the service if it was initiated by the potable
//at_exit:
if (portable_install && installed_service_folder == tallow_fodler)
	stop_service();

the bad scenario: tallow run as portable & user has some other proggie using the service & user starts the other while tallow is active, tallow would send the stop leaving the other without service... or maybe check some WinDivert state change at start and exit of tallow? not familiar with it

When running in portable mode(ie not installed) it will send a stop
control to the service in order to unlock the file so that the user
can(eventually) delete the portable folder, however do this only if
the service runs from the portable folder(don't stop an instance of
the service if created/started by another program)
@basil00
Copy link
Owner

basil00 commented Dec 12, 2019

Stopping the service will lead to problems, so best to remove this functionality. I think it may be possible to do safely using the REFLECT api and some undocumented features, but this should be done by the WinDivert runtime and not the application. I will look into it in future.

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