搜索数组中包含某个字符
#include <Array.au3>Dim $i = 1, $RegN
;遍历已安装程序
Const $root = 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
While 1
$nMsg = GUIGetMsg()
$v = RegEnumKey($root, $i)
If @error <> 0 Then
ExitLoop
Else
$n = RegRead($root & '\' & $v, 'DisplayName')
$u = RegRead($root & '\' & $v, 'UninstallString')
If $n <> '' And $u <> '' Then
_ArrayAdd($RegN, $n)
EndIf
EndIf
$i += 1
WEnd
Local $aiResult = _ArrayBinarySearch($RegN, "Microsoft")
_ArrayDisplay($RegN, "第一次")
_ArrayDisplay($aiResult, "第二次")
搜索“Uninstall”键值下面是否包含 “Microsoft”
我用了 _ArrayBinarySearch 貌似不行。 _ArrayBinarySearch只能用在一维数组 新手,一直未解决, 哪位前辈能指点一二,想解决,又解决不了。只能厚脸问问大家了。 http://www.autoitx.com/thread-47731-1-1.html,你在这里问了同样的问题,总不会让大家帮你解决所有的事情吧,该自己动手就自己动手,论坛虽说是开放的,但不是挨宰的 已经解决了。感谢前辈的关注。While 1
$nMsg = GUIGetMsg()
$v = RegEnumKey($root, $i)
If @error <> 0 Then
ExitLoop
Else
$n = RegRead($root & '\' & $v, 'DisplayName')
$u = RegRead($root & '\' & $v, 'UninstallString')
If $n <> '' And $u <> '' Then
$hzh = StringInStr($n, "c++")
If $hzh > 0 Then
_ArrayAdd($RegN, $n)
EndIf
EndIf
EndIf
$i += 1
WEnd
_ArrayDisplay($RegN, "第一次")直接在开始就判断,合适才丢进数组里面。
这样最优吧。
页:
[1]