newuser 发表于 2010-9-15 07:50:17

回复 15# 131738
老大测试的时候没有:
ERROR: $PROCESS_VM_READ previously declared as a 'Const'
提示错误吗?

netegg 发表于 2010-9-15 07:54:54

本帖最后由 netegg 于 2010-9-15 07:58 编辑

回复 3# nxbigdaddy
不一定吧,如果补丁的键删除了呢,有的清理软件就这么干只是把键删了,但补丁本身并不卸载
补丁最好走update那个键

131738 发表于 2010-9-15 14:54:13

回复 16# newuser

没有!看了你的问题,但看不懂。。。。

yingf20 发表于 2010-9-15 15:01:22

#Include <Array.au3>
#Include <WinAPIEx.au3>


Global $hKey, $Count, $Num = 1
$hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\.NETFramework')
If @error Then
      MsgBox(0,0,"未安装.NETFramework")
      Exit
Else
$Count = _WinAPI_RegQueryInfoKey($hKey)

Dim $reg_array
For $i = 0 To $Count
      If StringRegExp( _WinAPI_RegEnumKey($hKey, $i),'v\d\.\d.*',0) Then      
                $Num+=1
                ReDim $reg_array[$Num]
                $reg_array[$Num-1]=_WinAPI_RegEnumKey($hKey, $i)
                $reg_array=UBound($reg_array)-1
      EndIf
Next
_WinAPI_RegCloseKey($hKey)
_ArrayDisplay($reg_array)
EndIf


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

查这个下面的键,windows的程序管理器就是读这里的信息,net framework   和其他运行库、组件、补丁都可以在这里找到的。


#include <Array.au3>
#include <WinAPIEx.au3>
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>

Opt('MustDeclareVars', 1)

_Main()

Func _Main()
      Local $iI, $iTimer, $hListView

      ; 创建界面
      GUICreate("ListView Add Array", 500, 300)
      $hListView = GUICtrlCreateListView("", 2, 2, 460, 268)
      _GUICtrlListView_SetUnicodeFormat($hListView, False)
      GUISetState()

      ; 添加列
      _GUICtrlListView_AddColumn($hListView, "键名", 100)
      _GUICtrlListView_AddColumn($hListView, "软件名", 100)
      _GUICtrlListView_AddColumn($hListView, "安装路径", 100)
      _GUICtrlListView_AddColumn($hListView, "卸载文件名", 100)

      Global $hKey, $Count, $Num = 1
      $hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall')
      If @error Then
                MsgBox(0, 0, "未安装.NETFramework")
                Exit
      Else
                $Count = _WinAPI_RegQueryInfoKey($hKey)
                _GUICtrlListView_SetItemCount($hListView, $Count)
                Dim $reg_array[$Count]
                For $i = 0 To UBound($reg_array) - 1
                        $reg_array[$i] = _WinAPI_RegEnumKey($hKey, $i)
                        $reg_array[$i] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $reg_array[$i], "DisplayName")
                        $reg_array[$i] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $reg_array[$i], "InstallDir")
                        $reg_array[$i] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & $reg_array[$i], "UninstallString")
                Next
                _WinAPI_RegCloseKey($hKey)
                ;_ArrayDisplay($reg_array)
      EndIf

      _GUICtrlListView_AddArray($hListView, $reg_array)


      ; 循环至用户退出
      Do
      Until GUIGetMsg() = $GUI_EVENT_CLOSE
      GUIDelete()
EndFunc   ;==>_Main
不知道这些方法是不是你想要的。你参考一下。

newuser 发表于 2010-9-15 15:15:03

回复 18# 131738
执行楼下的代码,有错,看图:

这回能看懂我的问题了吧!

3mile 发表于 2010-9-15 15:18:41

不知道这些方法是不是你想要的。你参考一下。
yingf20 发表于 2010-9-15 15:01 http://www.autoitx.com/images/common/back.gif
这代码看着咋这么眼熟呢?

131738 发表于 2010-9-15 17:04:16

回复131738
执行楼下的代码,有错,看图:

这回能看懂我的问题了吧!
newuser 发表于 2010-9-15 15:15 http://www.autoitx.com/images/common/back.gif

仍然没问题,你看看库文件 <WinAPIEx.au3> 的版本及路径。是否有多个不同版本的 <WinAPIEx.au3> 存在。。。。。。。。。。

newuser 发表于 2010-9-16 07:55:42

回复 22# 131738
有2个这样的文件,但文件版本都是V2.0,大小也一样,应该是1个文件,我在测试的时候,分别把他们放在了"脚本所在的目录及Autoit的安装目录下的include目录下",但结果都如我的截图,能否把阁下的测试代码包括winapiex.au3打包我在测试一下?

3mile 发表于 2010-9-16 09:02:44

回复 23# newuser
先看包内的.EXE执行正常吗?
再运行.AU3看执行正常吗?

karlpopper 发表于 2010-9-16 10:41:57

这个不错啊 拿分

lhy6456210 发表于 2010-9-16 10:52:51

看不懂顶起来

newuser 发表于 2010-9-16 11:33:22

回复 24# 3mile

img]exe正常.au3还是老毛病![

3mile 发表于 2010-9-16 12:33:37

回复 27# newuser
.exe正常的话,应该是你的AU3有问题了。
全新安装一个AU3吧。

newuser 发表于 2010-9-16 13:32:48

回复 28# 3mile
重装AU3就OK了!

newuser 发表于 2010-9-16 13:34:11

回复 29# newuser
页: 1 [2] 3
查看完整版本: 如何检测安装过的软件