我如何禁用C#应用程序代理服务器错误

教义

新成员
已加入
2020年12月9日
留言内容
1
编程经验
3-5
我在C#应用程序上使用代理服务器。如果应用程序正在运行,则代理服务器处于活动状态,如果应用程序未运行或崩溃,则可以禁用代理服务器,但是某些用户可以在不关闭我的应用程序的情况下关闭计算机。打开计算机电源后,代理服务器处于活动状态,但我的应用程序未运行。之后,他们想使用互联网,但他们必须"检查您的代理服务器bla bla bla"直到运行我的应用程序或被Internet Explorer禁用。

顺便说一句,我编写了小的.exe文件,它正在系统托盘上运行,但是有些杀毒软件和某些时候的Windows Defender却给了我们"false positive"。您可以看到如何更改regedit

C#:
public static class Proxy
 {
     [DllImport("wininet.dll")]
     public static extern bool InternetSetOption
     (IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
    
     public const int INTERNET_OPTION_SETTINGS_CHANGED = 39;
     public const int INTERNET_OPTION_REFRESH = 37;
    
     public static bool Kapat()
     {
         bool Sonuc = false;
    
         try
         {
             bool settingsReturn, refreshReturn;
             RegistryKey registry = Registry.CurrentUser.OpenSubKey
            ("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
             registry.SetValue("ProxyEnable", 0);
             registry.SetValue("ProxyServer", 0);
    
             if ((int)registry.GetValue("ProxyEnable", 1) == 1)
             {
                 Sonuc = false;
             }
             else
             {
                 Sonuc = true;
             }
    
             registry.Close();
             settingsReturn = InternetSetOption
             (IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
             refreshReturn = InternetSetOption
             (IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
         }
         catch (Exception)
         {
             Sonuc = false;
         }
    
         return Sonuc;
     }
 }

我有两个问题;

  1. 用户在没有注册的情况下关闭计算机时,如何才能禁用它?
  2. 如何更安全地更改注册码?
再次感谢你 !
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,883
位置
英国
编程经验
10+
交叉发布在StackOverflow上: 我如何禁用C#应用程序代理服务器错误

相同代码上方的代码是否也在第二个应用程序中运行?
有些用户可以在不关闭我的应用程序的情况下关闭计算机。
您能详细说明一下吗?
考虑在关闭窗口的情况下使用FormClosing事件执行任何操作。有一些方法可以让Windows等待应用程序完成操作,并且可以强制Windows在关闭之前等待这些操作完成。在这种情况下,您可能会发现我在这里提供的建议有用: 检测到关闭并停止它

另外,如果您不介意,您能否解释一下您的应用程序的目的是什么?
 
最佳 底部