-1
它說元帥不能使用,因爲它是保護級別或變量之前已經使用過,並且它已被分配給另一個值。使用元帥vb.net Visual Studio 2012
//code:
Imports System.Text.RegularExpressions
Imports System.Runtime.InteropServices
Public Class Form1
Dim int As Integer = 0
Public WithEvents Browser As WebBrowser
Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Int32) As UShort
#Region "Using Proxy"
<Runtime.InteropServices.DllImport("wininet.dll", SetLastError:=True)> _
Private Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean
End Function
Public Structure Struct_INTERNET_PROXY_INFO
Public dwAccessType As Integer
Public proxy As IntPtr
Public proxyBypass As IntPtr
End Structure
Public Sub UseProxy(ByVal strProxy As String)
Const INTERNET_OPTION_PROXY As Integer = 38
Const INTERNET_OPEN_TYPE_PROXY As Integer = 3
Dim struct_IPI As Struct_INTERNET_PROXY_INFO
Dim Marshal
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy)
struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local")
Dim intptrStruct As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI))
Marshal.StructureToPtr(struct_IPI, intptrStruct, True)
Dim iReturn As Boolean = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, System.Runtime.InteropServices.Marshal.SizeOf(struct_IPI))
End Sub
#End Region
只是一個重要的注意事項:interop有點像一個緊急解決方案...它不應該用於實際的軟件,因爲它必須硬連線到機器代碼和機器代碼功能簽名,更不用說了它們的特定版本... plus:您需要自己查找並翻譯這些簽名(!!)。創建一個C++/CLR庫,在VB.NET中導入並使用它,這樣在Windows更新之後不太可能中斷,並且更加可靠。編組更糟,只會讓你陷入困境。 WINAPI只能在本地應用程序中使用。 – specializt