gpt4 book ai didi

visual-studio - 浏览器运行时代理连接

转载 作者:行者123 更新时间:2023-12-04 03:49:40 25 4
gpt4 key购买 nike

我必须制作即使在浏览器运行时也能连接/断开代理服务器的应用程序。我发现我可以更改一些注册表项的值。这是我在 Visual Basic 中的代码:

Imports Microsoft.Win32

Public Class Form1

Public Sub SetProxy()
On Error Resume Next
Dim regkey1 As RegistryKey
regkey1 = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", RegistryKeyPermissionCheck.Default)
regkey1.SetValue("ProxyServer", "ftp=10.8.0.1:808;http=10.8.0.1:808;https=10.8.0.1:808;socks=10.8.0.1:1080", RegistryValueKind.Unknown)
regkey1.SetValue("ProxyEnable", True, RegistryValueKind.DWord)
regkey1.Close()

Label1.Text = "Connected to Disa's Proxy Server"
Label1.ForeColor = Color.Green
End Sub


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
On Error Resume Next


SetProxy()
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
On Error Resume Next
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", RegistryKeyPermissionCheck.Default)
regKey.SetValue("ProxyEnable", False, RegistryValueKind.DWord)
regKey.Close()

Label1.Text = "Disconnected from Disa's Proxy Server"
Label1.ForeColor = Color.Red
End Sub
End Class

此代码在 Firefox 上运行良好,但在 IE 和 Chrome 上运行不佳。当 IE 打开时,它会阻止 Internet 设置 中的所有注册表更改。 Chrome 需要重新启动或打开代理设置才能重新加载代理信息。如何强制浏览器重新加载代理配置?

编辑示例:ChrisProxy

最佳答案

你应该在你的程序中调用:

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
// Notifies the system that the registry settings have been changed
// so that it verifies the settings on the next call to InternetConnect.

InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
// Causes the proxy data to be reread from the registry for a handle.
// No buffer is required.

使用该代码,无需重新启动或打开代理设置即可重新加载代理信息。现有的 Chrome 和 Internet Explorer 实例由 INTERNET_OPTION_SETTINGS_CHANGED 和 INTERNET_OPTION_REFRESH 通知。


注意事项:

  1. 您的调用程序不能是服务。 InternetSetOption() 是一个 WinINet 调用。
  2. 它应该在同一用户(与浏览器一样)帐户下运行。

关于visual-studio - 浏览器运行时代理连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14039964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com