vb.net - 如何让浏览器逐一或逐行读取和使用代理?
问题描述
我正在使用 webbrowser 快速填写站点中的表单,因此它一直阻止我的 ip,我在 webbrowser 上使用了一个可以工作 5 分钟的代理,然后站点再次阻止它 + 我使用 openFileDialog 将代理导入到文本框然后让下面的代码使用它但它只使用一个代理所以我希望它每次单击按钮时都使用文本框中的另一个代理
Public Structure Struct_INTERNET_PROXY_INFO
Public dwAccessType As Integer
Public proxy As IntPtr
Public proxyBypass As IntPtr
End Structure
Private Declare Auto Function InternetSetOption Lib "wininet.dll" (ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
Private Sub RefreshIESettings(ByVal strProxy As String)
Const INTERNET_OPTION_PROXY As Integer = 38
Const INTERNET_OPEN_TYPE_PROXY As Integer = 3
Dim s_IPI As Struct_INTERNET_PROXY_INFO
s_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
s_IPI.proxy = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(strProxy)
s_IPI.proxyBypass = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("Global")
Dim intptrStruct As IntPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(System.Runtime.InteropServices.Marshal.SizeOf(s_IPI))
System.Runtime.InteropServices.Marshal.StructureToPtr(s_IPI, intptrStruct, True)
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, System.Runtime.InteropServices.Marshal.SizeOf(s_IPI))
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
RefreshIESettings(textbox1.Text)
解决方案
只需使用静态索引。当列表用完时,它将循环回到第一个 strProxy。
Private lines As List(Of String) = File.ReadLines("proxies.txt").ToList
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Static i As Integer
If i = lines.Count Then
i = 0
End If
TextBox1.Text = lines(i)
i += 1
End Sub
推荐阅读
- c++ - C++ 使用给定的构造函数在循环中创建对象
- javascript - 在浏览器中渲染文件
- javascript - 如何在使用 react-reveal/makeCarousel 制作的轮播上停止自动播放
- json - 如何将 JSON 解析为 Dart 列表
- c# - 动态更改按钮内容
- netbeans - 如何清理 node-sass cmd 文件中的 args 以让 Netbean 10 工作
- javascript - 如何解决我的计时器没有任何错误
- javascript - 在 Node.js 中不使用 readFileSync() 连续读取多个文件
- angular-animations - 如何在第一次加载时触发角度动画?
- javascript - 如何为两个独立的功能设置本地存储(暗光模式)