找回密码
 加入
搜索
查看: 1408|回复: 13

combo怎样将注册表中的值列在下面呢?

[复制链接]
发表于 2009-5-27 17:38:57 | 显示全部楼层 |阅读模式
本帖最后由 xlcwxl 于 2009-5-29 10:02 编辑

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun

怎样将上面注册表的值读取,然后显示在下拉菜单中呢?

本帖子中包含更多资源

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

×
发表于 2009-5-27 18:07:16 | 显示全部楼层
本帖最后由 sensel 于 2009-5-27 18:10 编辑

1. 创建Combo控件。
2. 用RegEnumVal获取键名。
3. 用RegRead获取键值。
4. 将得到的键值用GUICtrlSetData填入Combo控件。
循环2-4步,直至第2步的@error为真(即RegEnumVal枚举已无更多的键名)。

例(需要先创建窗口):
Local $hDisallowRun, $sName, $sValue, $i
Local Const $sRegKey = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun"

$hDisallowRun = GUICtrlCreateCombo("", 354, 30, 72, 18, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
$i = 0
While 1
        $i += 1
        $sName = RegEnumVal($sRegKey, $i)
        If @error Then ExitLoop
        $sValue = RegRead($sRegKey, $sName)
        If $sValue == "" Then ContinueLoop
        GUICtrlSetData($hDisallowRun, $sValue)
WEnd
发表于 2009-5-27 22:21:08 | 显示全部楼层
楼上的正解



 楼主| 发表于 2009-5-27 22:56:03 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:56:15 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:56:36 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:56:55 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:57:13 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:57:20 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
 楼主| 发表于 2009-5-27 22:57:42 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
发表于 2009-5-27 23:43:58 | 显示全部楼层
谢谢楼上的热心帮助

我只想用RegEnumVal获取键名。
然后在combo中显示出来

还有就是,我怎样读取combo中的内容,然后调用删除
xlcwxl 发表于 2009-5-27 22:57


GUICtrlRead
读取指定控件的状态或相关数据。

$hDisallowRun = GUICtrlCreateCombo("", 354, 30, 72, 18, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
GUICtrlRead$hDisallowRun ,1)
发表于 2009-5-27 23:49:06 | 显示全部楼层
然后调用删除是什么意思?
就是读取之后将它从combo下拉列表删除?
如果是的话可以用_GUICtrlComboBoxEx_DeleteString
发表于 2009-5-28 01:46:07 | 显示全部楼层
本帖最后由 sensel 于 2009-5-28 01:47 编辑

额,举一反三不就好了?只要键名的话去掉RegRead。
删除的话,我猜LZ的意思是删除选定的注册表键。那么就是GUICtrlRead读控件值,RegDelete删注册表值。

Local $hDisallowRun, $sName, $i
Local Const $sRegKey = "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun"

$hDisallowRun = GUICtrlCreateCombo("", 354, 30, 72, 18, BitOR($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
$i = 0
While 1
        $i += 1
        $sName = RegEnumVal($sRegKey, $i)
        If @error Then ExitLoop
        GUICtrlSetData($hDisallowRun, $sName)
WEnd

$sName = GUICtrlRead($hDisallowRun)
RegDelete($sRegKey, $sName)

评分

参与人数 1金钱 +3 贡献 +1 收起 理由
lynfr8 + 3 + 1 热心人!

查看全部评分

发表于 2009-5-28 03:29:16 | 显示全部楼层
希望楼主问问题能详细描述下
最好能截图
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-10 09:15 , Processed in 0.087614 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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