找回密码
 加入
搜索
查看: 2096|回复: 6

[AU3基础] [已解决]怎样从注册表里读出的两个值里取某一个值

  [复制链接]
发表于 2012-7-21 13:36:45 | 显示全部楼层 |阅读模式
本帖最后由 longsir 于 2012-7-21 16:06 编辑

注册表里读到,值1,值2,有时值1和值2其中一个是空的,读到其中一个值赋予变量。
注册表里读取REG_DWORD值

$变量 =  取某一个值(值1,值2)

依照条件

如果 : $变量 = ???  则  !!!

不知道说的清楚不,我在论坛里找了一上午,没办法,只有提问了。
发表于 2012-7-21 13:53:39 | 显示全部楼层
Local $var1, $var2
Local $str

$var1 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "ComputerName")
$var2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName", "test")

If $var1 Then
        MsgBox(0, "", "$var1的值不为空")
Else
        MsgBox(0, "", "$var1的值为空")
EndIf

If $var2 Then
        MsgBox(0, "", "$var2的值不为空")
Else
        MsgBox(0, "", "$var2的值为空")
EndIf
 楼主| 发表于 2012-7-21 14:12:07 | 显示全部楼层
回复 2# haijie1223


抱歉啊,哥,这个结果好像不对。
我想要,两个值里,取一个赋予变量,然后用那个变量去做条件,执行后续代码。

例如:
注册表里,
HKCR_SOFTWARE\test\      值1     0x0000000F
HKCR_SOFTWARE\test2\    值2 (空值)
上述情况,有可能值1空,值2有数据。

$var =  regread(HKCR_SOFTWARE\test,   值1)  这个中间加个什么运算,得到那个0x0F (15)的值    regread(HKCR_SOFTWARE\test2,   值2)   
IF $var = 15 then Msgbox(0,"","注册表取值:15")
 楼主| 发表于 2012-7-21 14:34:04 | 显示全部楼层
本帖最后由 longsir 于 2012-7-21 14:35 编辑

就算解决了吧,想起来了,既然是取值数字,并且有一个值必定为空,那么把两个值加起来就行了。

$var = regread(值1) + regread(值2)
if $var = 15 then Msgbox(0,"","注册表取值:15")

不过这样做的话,程序容错性很低。
我还没想起更好的方法,只能这样了。


还有没更好的方法,期待中...
发表于 2012-7-21 15:30:28 | 显示全部楼层
两个值有一个必定为空的话,是可以考虑相加

若有都不为空的情况,是否两个值是相等的?
发表于 2012-7-21 15:43:04 | 显示全部楼层
回复 3# longsir


    sorry!没有能够完美的达到你的要求,但是照葫芦画个瓢应该还是可以的。
 楼主| 发表于 2012-7-21 16:04:57 | 显示全部楼层
回复 5# xiaowo


    值在取一个服务器和客户端的注册表键值,所以要么安装服务器,要么安装客户端,所以这个程序一定有一个值为空。
当然,不排除其它应用会出现为相等的情况。


——————————————————————————————————

回复 6# haijie1223

恩,是的,我画出瓢了,还是要感谢haijie1223。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 05:34 , Processed in 0.084205 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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