Open Unknown78 opened 2 years ago
If this is a genuinely useful command for all Windows programs, that feature would make sense in its own crate and exposed as its own CLI.
For this rewrite, I also looked at automatically applying proxy settings to the whole system as a dispatch
option. There are crates that allow you to do this, but I'm wary of compatibility between OSes.
For Windows: https://crates.io/crates/proxyconf For Mac: https://github.com/wyhaya/networksetup For Linux, I expect there's a plethora of options depending on the distribution.
I am not likely to implement this myself as part of dispatch-proxy.
After changing the proxy settings, whether it's enabling, disabling, or changing the address/port, it does not automatically applies to the whole system.
This PowerShell script from stackoverflow helps it a lot. https://stackoverflow.com/a/39079005/6458107https://stackoverflow.com/questions/21568502/ie-enable-disable-proxy-settings-via-registry
Save that script into something like
RefreshPROXY.ps1
and run it whenever you need to.I usually turn this script into one line that you could run on command prompt, windows terminal, or inside a batch script however you want to.
powershell -command "$signature = '[DllImport("^""wininet.dll"^"", SetLastError = true, CharSet=CharSet.Auto)] public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);'; $type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru; $type::InternetSetOption(0,39,0,0); $type::InternetSetOption(0,37,0,0);" > nul
This could be a feature and be run as
dispatch proxy-refresh
if it were implemented. With it's own Rust code, of course, good luck devs... 👍