找回密码
 加入
搜索
查看: 2229|回复: 7

关于判断注册表值

[复制链接]
发表于 2008-12-15 19:09:13 | 显示全部楼层 |阅读模式
请问怎么样才这样做到这个效果
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
用AUTOIT去查找上面这个地址,要是这个地址里面存在一个名字为ABC的,就把ABC里面的值设置成123
要是没找到ABC就不做任何操作
谢谢

[ 本帖最后由 落泪之冰 于 2008-12-16 18:30 编辑 ]
发表于 2008-12-15 20:10:48 | 显示全部楼层

这样应该可以的。

$i = 1
While 1
        $key=RegEnumVal('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings',$i)
        If @error <> 0 then ExitLoop
    If $key = "ABC" Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ABC", "REG_SZ", "123")
    Sleep(90)
        $i = $i + 1
WEnd
 楼主| 发表于 2008-12-15 20:30:27 | 显示全部楼层
原帖由 范统.贾 于 2008-12-15 20:10 发表
[au3]$i = 1
While 1
        $key=RegEnumVal('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings',$i)
        If @error  0 then ExitLoop
    If $key = "ABC" Then RegWrite("HKEY_CURRENT ...


请问不要做循环,写的简单点是怎么样的?
发表于 2008-12-15 20:35:14 | 显示全部楼层

你想实现什么功能呢?

一定要用循环的,否则不好判断。只好无论存在不存在,直接写值。

其实这样占不要多少CPU和内存的。一会儿就结束了。

[ 本帖最后由 范统.贾 于 2008-12-15 20:36 编辑 ]
 楼主| 发表于 2008-12-15 21:21:27 | 显示全部楼层
谢谢你,这个很有用,但是看的不是很明白,能不能详细的说下没步的意思呢?
还有Sleep(90)这个不加应该也没关系吧?
发表于 2008-12-15 22:54:56 | 显示全部楼层
$i = 1  ;<==定义$i等于1
While 1
    $key=RegEnumVal('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings',$i);<==读取Internet Settings下的每一个键值,判断是否存在“ABC”
    If @error <> 0 then ExitLoop;<==表示Internet Settings下的每一个键值全部读完了,还不存在“ABC”的话就退出循环
    If $key = "ABC" Then 
                RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ABC", "REG_SZ", "123");<==如果存在“ABC”就写入,不存在就不写入
                ExitLoop ;<==写入之后就退出循环,不用再循环了。
        EndIf
    Sleep(90);<==这个不加也行,但是CPU占用率可能会高点,如果Internet Settings下的键值不多的话,不加也没关系
    $i = $i + 1 ;<==每循环一次就加1,再返回循环第一行执行的时候,$i就等于2,读取第二条记录。
WEnd


这样好一点,不用全部读完。

[ 本帖最后由 范统.贾 于 2008-12-15 22:58 编辑 ]
发表于 2008-12-16 15:13:08 | 显示全部楼层
if RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ABC")<>""   Then
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ABC", "REG_SZ", "123")
EndIf
 楼主| 发表于 2008-12-16 18:29:39 | 显示全部楼层
谢谢 范统.贾
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 06:14 , Processed in 0.072674 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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