找回密码
 加入
搜索
查看: 15473|回复: 19

[系统综合] [已解决]去掉IE“自动检测设置”的勾选

 火.. [复制链接]
发表于 2010-2-4 08:16:50 | 显示全部楼层 |阅读模式
本帖最后由 boyhong 于 2011-5-31 15:42 编辑

去掉IE“自动检测设置”的勾选~如下图:


目前,我知道如何检测这个勾到底选上还是没有选上:

#Include <WinHTTP.au3>
$array=_WinHttpGetIEProxyConfigForCurrentUser()
MsgBox(64,"",$array[0])
如上:$array[0]的值是1选上,是0为没有选上。

我现在想实现:若选上了,如何去掉这个勾为不选上。

希望大家出手~感激不尽~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-2-4 08:18:44 | 显示全部楼层
我暂时的折中解决方法,但不是长久之计:
if $array[0]=1 then
Do
$iereg=FileInstall("ie.reg",@HomeDrive&"\IExiufu.reg",1)
Until $iereg=1
$iexiufudos=_RunDOS("regedit /s "&@HomeDrive&"\IExiufu.reg")
FileDelete(@HomeDrive&"\IExiufu.reg")
Endif
 楼主| 发表于 2010-2-4 08:20:15 | 显示全部楼层
希望大家帮忙看看~感谢~~~~~~~期待更好的办法实现。。。。。那天我去看了API的东西。没有看懂。。。不知道能不能实现。。。。。
发表于 2010-2-4 08:54:20 | 显示全部楼层
判断值就行啦
发表于 2010-2-4 09:27:01 | 显示全部楼层
_WinHttpSetDefaultProxyConfiguration
 楼主| 发表于 2010-2-4 09:47:49 | 显示全部楼层
本帖最后由 boyhong 于 2010-2-4 12:43 编辑
_WinHttpSetDefaultProxyConfiguration
bing614 发表于 2010-2-4 09:27


设置默认的WinHTTP代理配置
#Include <WinHTTP.au3>
_WinHttpSetDefaultProxyConfiguration( $iAccessType, $Proxy, $ProxyBypass )
参数
$iAccessType
包含权限类型的整数值
$Proxy
包含代理服务器列表的字符串
$ProxyBypass
包含代理旁路列表的字符串


我不明白是什么意思,包含权限类型的整数值包含代理服务器列表的字符串包含代理旁路列表的字符串
???????  请兄台指点一下,我只想实现一楼的想法而已~~~~应怎么写?
 楼主| 发表于 2010-2-4 12:41:25 | 显示全部楼层
判断值就行啦
xlcwxl 发表于 2010-2-4 08:54


不行的。。我在二楼的注册表文件内容:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections]
"DefaultConnectionSettings"=hex:3c,00,00,00,05,00,00,00,01,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,90,b1,e4,38,dc,92,c6,01,\
01,00,00,00,c0,a8,71,fa,00,00,00,00,00,00,00,00
"SavedLegacySettings"=hex:3c,00,00,00,85,00,00,00,01,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,90,b1,e4,38,dc,92,c6,01,01,00,\
00,00,c0,a8,71,fa,00,00,00,00,00,00,00,00

请问怎么判断?
发表于 2010-2-4 15:31:10 | 显示全部楼层
IF    判断 注册表
发表于 2010-2-4 15:36:02 | 显示全部楼层
ControlCommand直接发送勾选命令,管它勾了还是没勾
 楼主| 发表于 2010-2-4 18:04:10 | 显示全部楼层
IF    判断 注册表
qq82015930 发表于 2010-2-4 15:31


能否写个例子?
发表于 2010-2-4 20:48:23 | 显示全部楼层
本帖最后由 阿福 于 2010-2-4 21:16 编辑

只需要去勾选的话,这样就可以了:
$sOpt = '01'; ='01'去勾, ='09'打勾

$sDCS = Hex(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","DefaultConnectionSettings"))
$sDCS = StringLeft($sDCS, 16) & $sOpt & StringMid($sDCS, 19, StringLen($sDCS) - 18)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","DefaultConnectionSettings","REG_BINARY", Binary('0x' & $sDCS))

如果要和系统保持一致就再加上这段代码:
$sSLS = Hex(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","SavedLegacySettings"))
$sSLS = StringLeft($sSLS, 16) & $sOpt & StringMid($sSLS, 19, StringLen($sSLS) - 18)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","SavedLegacySettings","REG_BINARY", Binary('0x' & $sSLS))

有的IE版本可能出现:仅是注册表的修改不会马上应用到IE,可以再加这个应用修改的代码:
DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 39, 'ptr', 0, 'dword', 0 )

如果应用修改对付不了所有IE版本,就再做刷新:
DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 37, 'ptr', 0, 'dword', 0 )

所以通用的完整代码为:
$sOpt = '01'; ='01'去勾, ='09'打勾

$sDCS = Hex(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","DefaultConnectionSettings"))
$sDCS = StringLeft($sDCS, 16) & $sOpt & StringMid($sDCS, 19, StringLen($sDCS) - 18)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","DefaultConnectionSettings","REG_BINARY", Binary('0x' & $sDCS))

$sSLS = Hex(RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","SavedLegacySettings"))
$sSLS = StringLeft($sSLS, 16) & $sOpt & StringMid($sSLS, 19, StringLen($sSLS) - 18)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections","SavedLegacySettings","REG_BINARY", Binary('0x' & $sSLS))

DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 39, 'ptr', 0, 'dword', 0 ) 

DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 37, 'ptr', 0, 'dword', 0 ) 
如果你把这段代码写成自定义func的话,判断成功的返回可以这样表达:
DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 39, 'ptr', 0, 'dword', 0 )
If @error Then Return 0
DllCall( 'wininet.dll', 'uint', 'InternetSetOption', 'ptr', 0, 'dword', 37, 'ptr', 0, 'dword', 0 )
If @error Then Return 0
Return 1 ;成功

如果你要判断原始状态就取StringMid($sDCS, 17, 2),是'01'就是没打勾, 是'09'就是打勾了.

评分

参与人数 2金钱 +40 贡献 +10 收起 理由
boyhong + 10 + 5 无比敬仰中
afan + 30 + 5

查看全部评分

发表于 2010-2-4 21:25:24 | 显示全部楼层
强大的阿福
 楼主| 发表于 2010-2-5 12:36:11 | 显示全部楼层
强大的阿福~~~无比敬仰~~~~~~~~~~
发表于 2010-3-31 16:03:14 | 显示全部楼层
好强大呀,正需要呢,十分感谢.
发表于 2011-5-30 10:11:54 | 显示全部楼层
忍不住想顶下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 14:30 , Processed in 0.084201 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表