How to set IE proxy using VB.NET

2023-11-14

None.gif '
None.gif'
 Created by SharpDevelop.
None.gif'
 User: Ying-Shen
None.gif'
 Date: 2004-11-12
None.gif'
 Time: 11:16
None.gif'
 
None.gif'
 To change this template use Tools | Options | Coding | Edit Standard Headers.
None.gif'
None.gif
Imports  System
None.gif
Imports  System.Runtime.InteropServices 
None.gif
Imports  System.Diagnostics
None.gif
Imports  Microsoft.VisualBasic
None.gif
Imports  NUnit.Framework
None.gif
ExpandedBlockStart.gifContractedBlock.gif
Namespace DefaultNamespace Namespace DefaultNamespace.Tests
InBlock.gif       
InBlock.gif    
<TestFixture> _
ExpandedSubBlockStart.gifContractedSubBlock.gif    
Public Class Test1Class Test1
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Public Enum MyOptionsEnum MyOptions
InBlock.gif             INTERNET_PER_CONN_FLAGS 
= 1
InBlock.gif             INTERNET_PER_CONN_PROXY_SERVER 
= 2
InBlock.gif             INTERNET_PER_CONN_PROXY_BYPASS 
= 3
InBlock.gif             INTERNET_PER_CONN_AUTOCONFIG_URL 
= 4
InBlock.gif             INTERNET_PER_CONN_AUTODISCOVERY_FLAGS 
= 5
InBlock.gif             INTERNET_OPTION_REFRESH 
= 37
InBlock.gif             INTERNET_OPTION_PER_CONNECTION_OPTION 
= 75
InBlock.gif             INTERNET_OPTION_SETTINGS_CHANGED 
= 39
InBlock.gif             PROXY_TYPE_PROXY 
= &H2
InBlock.gif             PROXY_TYPE_DIRECT 
= &H1
ExpandedSubBlockEnd.gif        
End Enum

InBlock.gif
InBlock.gif        
<StructLayout(LayoutKind.Sequential)> _
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Private Class FILETIMEClass FILETIME
InBlock.gif             
Public dwLowDateTime As Integer
InBlock.gif             
Public dwHighDateTime As Integer
ExpandedSubBlockEnd.gif        
End Class

InBlock.gif        
InBlock.gif        
<StructLayout(LayoutKind.Explicit, Size:=12)> _
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Private Structure INTERNET_PER_CONN_OPTIONStructure INTERNET_PER_CONN_OPTION
InBlock.gif             
<FieldOffset(0)> Dim dwOption As Integer
InBlock.gif             
<FieldOffset(4)> Dim dwValue As Integer
InBlock.gif             
<FieldOffset(4)> Dim pszValue As IntPtr
InBlock.gif             
<FieldOffset(4)> Dim ftValue As IntPtr
ExpandedSubBlockStart.gifContractedSubBlock.gif             
Public Function GetBytes()Function GetBytes() As Byte()
InBlock.gif                 
Dim b(12As Byte
InBlock.gif                 BitConverter.GetBytes(dwOption).CopyTo(b, 
0)
InBlock.gif                 
Select Case dwOption
InBlock.gif                      
Case MyOptions.INTERNET_PER_CONN_FLAGS
InBlock.gif                      BitConverter.GetBytes(dwValue).CopyTo(b, 
4)
InBlock.gif                      
Case MyOptions.INTERNET_PER_CONN_PROXY_BYPASS
InBlock.gif                      BitConverter.GetBytes(pszValue.ToInt32()).CopyTo(b, 
4)
InBlock.gif                      
Case MyOptions.INTERNET_PER_CONN_PROXY_SERVER
InBlock.gif                      BitConverter.GetBytes(pszValue.ToInt32()).CopyTo(b, 
4)
InBlock.gif                 
End Select
InBlock.gif                 
Return b
ExpandedSubBlockEnd.gif             
End Function

ExpandedSubBlockEnd.gif        
End Structure

InBlock.gif        
InBlock.gif         
InBlock.gif        
InBlock.gif        
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Private Class INTERNET_PER_CONN_OPTION_LISTClass INTERNET_PER_CONN_OPTION_LIST
InBlock.gif             
Public dwSize As Integer
InBlock.gif             
Public pszConnection As String
InBlock.gif             
Public dwOptionCount As Integer
InBlock.gif             
Public dwOptionError As Integer
InBlock.gif             
Public pOptions As IntPtr
ExpandedSubBlockEnd.gif        
End Class

InBlock.gif        
InBlock.gif        
<StructLayout(LayoutKind.Sequential)> _
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Private Class INTERNET_PROXY_INFOClass INTERNET_PROXY_INFO
InBlock.gif             
Public dwAccessType As Integer
InBlock.gif             
Public lpszProxy As IntPtr
InBlock.gif             
Public lpszProxyBypass As IntPtr
ExpandedSubBlockEnd.gif        
End Class

InBlock.gif         
Private Const ERROR_INSUFFICIENT_BUFFER = 122
InBlock.gif         
Private Const INTERNET_OPTION_PROXY = 38
InBlock.gif         
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
InBlock.gif
InBlock.gif         
<DllImport("wininet.dll")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif         
Private Shared Function InternetSetOption()Function InternetSetOption(ByVal hInternet As IntPtr, _
InBlock.gif             
ByVal dwOption As Integer, _
InBlock.gif             
ByVal lpBuffer As INTERNET_PER_CONN_OPTION_LIST, _
InBlock.gif             
ByVal dwBufferLength As IntegerAs Boolean
ExpandedSubBlockEnd.gif         
End Function

InBlock.gif    
InBlock.gif         
<DllImport("kernel32.dll")> _
ExpandedSubBlockStart.gifContractedSubBlock.gif         
Private Shared Function GetLastError()Function GetLastError() As Integer
ExpandedSubBlockEnd.gif         
End Function

InBlock.gif
InBlock.gif        
<Test> _
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Public Sub TestMethod()Sub TestMethod
InBlock.gif            
' TODO: Add your test.
InBlock.gif
            SetProxy
ExpandedSubBlockEnd.gif        
End Sub

InBlock.gif        
ExpandedSubBlockStart.gifContractedSubBlock.gif        
Private Function SetProxy()Function SetProxy() As Boolean
InBlock.gif         
Dim bReturn As Boolean
InBlock.gif         
Dim list As New INTERNET_PER_CONN_OPTION_LIST
InBlock.gif         
Dim dwBufSize As Integer = Marshal.SizeOf(list)
InBlock.gif         
Dim opts(3As INTERNET_PER_CONN_OPTION
InBlock.gif         
Dim opt_size As Integer = Marshal.SizeOf(opts(0))
InBlock.gif         Debug.
WriteLine("sizeof(option) " + opt_size.ToString)
InBlock.gif
InBlock.gif         list.dwSize 
= dwBufSize
InBlock.gif         list.pszConnection 
= ControlChars.NullChar
InBlock.gif         list.dwOptionCount 
= 3
InBlock.gif
InBlock.gif         Debug.
WriteLine("sizeof list " + dwBufSize.ToString())
InBlock.gif
InBlock.gif         
'set flags
InBlock.gif
         opts(0).dwOption = MyOptions.INTERNET_PER_CONN_FLAGS
InBlock.gif         opts(
0).dwValue = MyOptions.PROXY_TYPE_DIRECT Or MyOptions.PROXY_TYPE_PROXY
InBlock.gif         
InBlock.gif
InBlock.gif         
'set proxyname
InBlock.gif
         opts(1).dwOption = MyOptions.INTERNET_PER_CONN_PROXY_SERVER
InBlock.gif         opts(
1).pszValue = Marshal.StringToHGlobalAnsi("http://proxy:80")
InBlock.gif        
InBlock.gif        
'set override
InBlock.gif
         opts(2).dwOption = MyOptions.INTERNET_PER_CONN_PROXY_BYPASS
InBlock.gif         opts(
2).pszValue = Marshal.StringToHGlobalAnsi("local")
InBlock.gif
InBlock.gif         
Dim b(3*opt_size) As Byte
InBlock.gif         opts(
0).GetBytes().CopyTo(b, 0)
InBlock.gif         opts(
1).GetBytes().CopyTo(b, opt_size)
InBlock.gif         opts(
2).GetBytes().CopyTo(b, 2 * opt_size)
InBlock.gif 
InBlock.gif         
Dim ptr As IntPtr = Marshal.AllocCoTaskMem(3*opt_size)
InBlock.gif         Marshal.Copy(b, 
0, ptr, 3*opt_size)
InBlock.gif
InBlock.gif         list.pOptions 
= ptr
InBlock.gif         
'set the options on the connection
InBlock.gif
         bReturn = InternetSetOption(IntPtr.Zero, MyOptions.INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize)
InBlock.gif         
If Not bReturn Then
InBlock.gif              Debug.
WriteLine(GetLastError)
InBlock.gif         
End If
InBlock.gif         
InBlock.gif         
'Flush the current IE proxy setting
InBlock.gif
         bReturn = InternetSetOption( IntPtr.Zero, MyOptions.INTERNET_OPTION_REFRESH,Nothing0 )
InBlock.gif         
If Not bReturn Then
InBlock.gif              Debug.
WriteLine(GetLastError)
InBlock.gif         
End If
InBlock.gif
InBlock.gif         Marshal.FreeHGlobal(opts(
1).pszValue)
InBlock.gif         Marshal.FreeHGlobal(opts(
2).pszValue)
InBlock.gif         Marshal.FreeCoTaskMem(ptr)
InBlock.gif         
Return bReturn
ExpandedSubBlockEnd.gif     
End Function

ExpandedSubBlockEnd.gif    
End Class

ExpandedBlockEnd.gif
End Namespace

None.gif

转载于:https://www.cnblogs.com/jonnyyu/archive/2004/02/14/1247.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

How to set IE proxy using VB.NET 的相关文章

  • 原神服务端搭建架设教程win系统(附客户端+服务端+环境配置)

    原神服务端搭建架设教程win系统 附客户端 服务端 环境配置 大家好 我是艾西原神一款开放世界冒险3D游戏以七种元素 分别为风 雷 岩 火 水 草 冰 交汇的幻想世界 提瓦特 创造的游戏世界 以角色扮演的RPG游戏还是有非常多的玩家热爱 以
  • ERROR conf.Configuration: error parsing conf mapred-site.xml

    Hadoop进行namenode格式化时报错 ERROR conf Configuration error parsing conf mapred site xml com ctc wstx exc WstxParsingException
  • MTCNN

    Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks 使用多任务级联卷积网络的联合人脸检测和对齐 摘要 由于各种姿势 光照和遮挡
  • Java基础 类访问权限

    转载自https www cnblogs com jinggod p 8425423 html java基础 七 java四种访问权限 引言 Java中的访问权限理解起来不难 但完全掌握却不容易 特别是4种访问权限并不是任何时候都可以使用
  • Visual Studio 远程调试正在运行的进程

    使用场景 当项目在测试环境上有bug 需要运行代码调试一下 这时就需要在测试环境上安装一个调试工具 然后在本地运行代码 远程链接到测试环境服务器来调试代码 假期鸽了这末长的时间 方式一 工具下载 https visualstudio mic
  • PHP 并发场景的几种解决方案

    PHP 并发场景的几种解决方案 在秒杀 抢购等并发场景下 可能会出现超卖的现象 在 PHP 语言中并没有原生提供并发的解决方案 因此就需要借助其他方式来实现并发控制 列出常见的解决方案有 使用队列 额外起一个进程处理队列 并发请求都放到队列
  • AI换脸小程序是否能实现更高水平的面部融合?

    随着人工智能技术的不断进步 面部识别技术在AI换脸小程序中的应用也日益成熟 这项技术的发展趋势逐渐朝着实现更加精准和逼真的面部融合效果 本文将探讨当前面部识别技术的发展趋势 并分析其在AI换脸小程序中实现更高水平的面部融合效果的可能性 一
  • flutter之Container

    Container类似于iOS中的UIView 具有绘制 定位 调整大小功能 通常用来装载其它子控件 假如Container没有子控件 它将自动填充整个屏幕 反之 会根据子控件大小 调整自身大小 从而达到自适应效果 注意 使用Contain
  • Unity PlayerSetting Android打包设置介绍

    Unity 版本 2018 3 0f2以下部分内容来自Unity文档和网上资料 如有错误 请在评论区指正 我看到后会进行改正和更新 Icon 后续更新 略 Resolution And Presentation 后续更新 略 Splash
  • python实现链表的旋转

    python实现链表的旋转 链表是一种常用的数据结构 实现起来也不难 但当我们需要将链表中的元素旋转时 就会有一些困难 本文介绍基于python语言的链表旋转实现方法 实现思路 链表旋转可以通过移动节点的位置来实现 我们可以找到需要旋转的位
  • 第二节 分支和循环语句

    第二节 分支和循环语句 目录 一 什么是语句 二 分支语句 选择结构 三 循环语句 本章重点 分支语句 if switch 循环语句 while for do while goto语句 一 什么是语句 C语句可分为以下五类 表达式语句 函数
  • STM32关于编译不通过,错误提示 Error: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o

    今天正式开始学习stm32的开发板 在学习的时候 发现连例程都不能够通过编译 然后测试了好久 发现都是这种错误 然后上网查找到了答案 找到了解决的方法 这里来记录一下 转载来自 http blog sina com cn s blog 54
  • echarts在data里定义的formatter函数失效问题

    在echarts官方运行的时候是生效的 拿到项目里循环之后就失效了 后来井排查发现 是因为循环的时候 使用了JSON stringify this eqpOption 函数 导致 echarts的option里默认itemStyle的方法都
  • 构建可扩展的应用:六边形架构详解与实践

    面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转clo
  • 第十届蓝桥杯省赛C++B组 完全二叉树的权值

    试题 G 完全二叉树的权值 时间限制 1 0s 内存限制 256 0MB 本题总分 20 分 问题描述 给定一棵包含 N 个节点的完全二叉树 树上每个节点都有一个权值 按从上到下 从左到右的顺序依次是 A1 A2 AN 如下图所示 现在小明
  • 机器学习好伙伴之scikit-learn的使用——学习曲线

    机器学习好伙伴之scikit learn的使用 学习曲线 什么是学习曲线 sklearn中学习曲线的实现 应用示例 什么是学习曲线呢 其内容主要包含当训练量增加时 loss的变化情况 什么是学习曲线 学习曲线主要反应的是学习的一个过程 常用
  • 求过审~~~

    我要过审 纯水
  • 微信小程序openid取不到,总是undefined

    今天在做微信小程序开发的时候 遇到了这样的问题 微信小程序官网的坑是少了data 所以获取不到 是undefined 但我加了data还是undefined 解决方法是 遍历res data这个对象数组 看回送的错误码及错误是什么 我的错误
  • C++成员函数模板特化问题

    C 成员函数模板特化问题 1 类似代码写法 include
  • Java中的常量池

    一 在Java中有那些常量池 谈到常量池 在Java体系中 共用四种常量池 分别是字符串常量池 Class常量池和运行时常量池 JAVA 基本类型的封装类及对应常量池 二 字符串常量池 在JVM中 为了减少相同的字符串的重复创建 为了达到节

随机推荐

  • 手写python实现梯度下降算法(base问题:多元线性回归)

    手写python实现梯度下降算法 因为课程设计的原因 接触了很多和机器学习相关的事情 在学习的时候发现 机器学习如果只是听不写代码基本什么都学习不到 于是自己利用python手写了大部分的常见的基础的算法 很有趣呢 慢慢更新咯 文章目录 手
  • c语言中y=0x20什么意思,ASCII码0x20之前的码分别是什么意义?

    ASCII码0x20之前的码分别是什么意义 ascii码0x20之前的码分别是什么意义 c 语言 ascii码表中的前32个都是些控制字符 nul 0 0000 0x00 sp 32 0040 0x20 64 0100 0x40 96 01
  • 05 Django工程创建、注册子应用及ORM模型

    一 创建django工程 1 创建 cd Desktop test django admin startproject name 例如 django admin startproject testmanager cd testmanager
  • java并发包:生产者消费者模式

    本文转载至 http blog csdn net a910626 article details 51900974 生产者消费者模式是一个经典的多线程设计模式 它为多线程间的协作提供了良好的解决方案 在生产者消费者模式中 通常有两类线程 即
  • Learn_C++单词

    nomenclature Deprecated cubbyholes render inadvertently polygons truncation decrement ballistic refutation exotic oversi
  • linux网络编程一:epoll

    简介 一提到linux高性能服务器编程 epoll就是绕不开的话题 当前网络库在linux上实现也主要是以epoll为主 epoll的主要优点有 当检查大量的文件描述符时 epoll的性能比select和poll要高很多 epoll 既支持
  • mongoTemplate操作MongoDB排序

    解决项目中遇到的排序问题 Mark一下 Override public List
  • 【定时将hbase的索引同步到solr的core,当同步失败时,回滚core】好记性不如烂笔头,我将工作中写的自动化脚本记录在此,供大家参考

    前言 此脚本不包含core的创建 创建core请移步他处 本贴侧重core快照的创建 快照状态查询 core的删除 从快照恢复core hbase到solr的同步不做为本贴的重点 同步脚本syn solr sh内容 binbash 定义co
  • 虚拟机使用教程

    文章目录 前言 1 什么是母机与子机 2 常用快捷键 一 如何开机 二 如何克隆及删除虚拟机 三 如何修改硬件信息 改机器码 四 虚拟机内外如何传文件 五 调整虚拟机窗口大小及虚拟机全屏显示 六 如何调整cpu 内存 七 虚拟机开启声音 不
  • latex 约等于且大于 小于

    约等于 a approx b gt approx 大于约等于 a gtrsim b gt gtrsim 小于约等于 a
  • 基于QT 实现的LearnGL例子

    LOpenGL 是学习OpenGL非常好的资料 网址是 LearnOpenGL CN learnopengl cn github io 最近复习OpenGL 基于QT 拷贝实现了LearnGL的一些例子 下载地址 QT OpenGL 学习基
  • UML_类图

    在UML类图中 常见的有以下几种关系 泛化 Generalization 实现 Realization 关联 Association 聚合 Aggregation 组合 Composition 依赖 Dependency 1 泛化 Gene
  • 【Python】python 3.x 数据类型 吐血汇总

    文章目录 1 整数型 2 浮点数 3 字符串 4 布尔值 5 空值 6 变量 7 定义字符串 1 raw字符串 多行字符串 2 Unicode字符串 8 集合 list 1 访问列表中的值 2 更新列表 3 删除列表元素 4 Python列
  • 数据处理中的标准化、归一化,究竟是什么?

    原文链接 数据处理中的标准化 归一化 究竟是什么 大家好 我是小一 今天说一个比较重要的内容 无论是在算法建模还是在数据分析都比较常见 数据归一化和标准化 开始之前 请你先把网上看到的所有相关的博客 帖子都忘掉 不说全部 能讲清楚这个概念的
  • T5模型简单介绍

    目录 一 概要 二 深入扩展 2 1 两个要素 2 2 预训练方法 一 概要 谷歌公司的研究人员提出的 T5 Text to Text Transfer Transformer 有5个T开头的单词 所以叫做T5 模型采用了一种与前述模型截然
  • 成功解决Python中ValueError: not enough values to unpack (expected 10, got 2)故障

    对split函数不熟悉 将1修改为10即成功 同时将文件中所有空格键替换为Tab键 个人觉得这一步没啥用 这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入
  • linux screen rz/sz 文件卡死了快速退出的方法

    项目场景 服务器上通过sz下载txt格式的数据保存于本地遇到问题 问题描述 Linux 中使用tmux screen rz sz 命令下载文件卡死 出现如下图所示情况 快速退出方法 有如下解决办法 按住Ctrl键 再按五次x键 强行终断传输
  • 深入解析Spring Boot中最常用注解的使用方式(上篇)

    摘要 本文将详细介绍Spring Boot中最常用的注解的使用方式 并通过代码示例加以说明 通过学习这些注解 读者将能够更好地理解和运用Spring Boot框架 构建高效的企业级应用 目录 第一部分 常见的控制器注解 1 RequestM
  • Springboot项目打瘦包(将依赖包放到jar包外)

    一般springboot项目我们不做任何配置的话 打包会包含很多的依赖 生成的包过大 动辄100M以上 往生产环境上传很慢 所以把所有用的jar包打到外部 这样生成的小包中只有自已开发的程序 基本可以控制在1M以内 效果甚好 首先把spri
  • How to set IE proxy using VB.NET

    Created by SharpDevelop User Ying Shen Date 2004 11 12 Time 11 16 To change this template use Tools Options Coding Edit