找回密码
 加入
搜索
楼主: enjoyhappy

[系统综合] 如何检测安装过的软件

 火... [复制链接]
发表于 2010-9-15 07:50:17 | 显示全部楼层
回复 15# 131738
老大测试的时候没有:
ERROR: $PROCESS_VM_READ previously declared as a 'Const'
提示错误吗?
发表于 2010-9-15 07:54:54 | 显示全部楼层
本帖最后由 netegg 于 2010-9-15 07:58 编辑

回复 3# nxbigdaddy
不一定吧,如果补丁的键删除了呢,有的清理软件就这么干只是把键删了,但补丁本身并不卸载
补丁最好走update那个键
发表于 2010-9-15 14:54:13 | 显示全部楼层
回复 16# newuser

没有!看了你的问题,但看不懂。。。。
发表于 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[1]
For $i = 0 To $Count[0]
        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[0]=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[0])
                Dim $reg_array[$Count[0]][4]
                For $i = 0 To UBound($reg_array) - 1
                        $reg_array[$i][0] = _WinAPI_RegEnumKey($hKey, $i)
                        $reg_array[$i][1] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" & $reg_array[$i][0], "DisplayName")
                        $reg_array[$i][2] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" & $reg_array[$i][0], "InstallDir")
                        $reg_array[$i][3] = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" & $reg_array[$i][0], "UninstallString")
                Next
                _WinAPI_RegCloseKey($hKey)
                ;_ArrayDisplay($reg_array)
        EndIf

        _GUICtrlListView_AddArray($hListView, $reg_array)


        ; 循环至用户退出
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main
不知道这些方法是不是你想要的。你参考一下。
发表于 2010-9-15 15:15:03 | 显示全部楼层
回复 18# 131738
执行楼下的代码,有错,看图:

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

本帖子中包含更多资源

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

×
发表于 2010-9-15 15:18:41 | 显示全部楼层
不知道这些方法是不是你想要的。你参考一下。
yingf20 发表于 2010-9-15 15:01

这代码看着咋这么眼熟呢?
发表于 2010-9-15 17:04:16 | 显示全部楼层
回复  131738
执行楼下的代码,有错,看图:

这回能看懂我的问题了吧!
newuser 发表于 2010-9-15 15:15


仍然没问题,你看看库文件 <WinAPIEx.au3> 的版本及路径。是否有多个不同版本的 <WinAPIEx.au3> 存在。。。。。。。。。。
发表于 2010-9-16 07:55:42 | 显示全部楼层
回复 22# 131738
有2个这样的文件,但文件版本都是V2.0,大小也一样,应该是1个文件,我在测试的时候,分别把他们放在了"脚本所在的目录及Autoit的安装目录下的include目录下",但结果都如我的截图,能否把阁下的测试代码包括winapiex.au3打包我在测试一下?
发表于 2010-9-16 09:02:44 | 显示全部楼层
回复 23# newuser
先看包内的.EXE执行正常吗?
再运行.AU3看执行正常吗?

本帖子中包含更多资源

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

×
发表于 2010-9-16 10:41:57 | 显示全部楼层
这个不错啊 拿分
发表于 2010-9-16 10:52:51 | 显示全部楼层
看不懂顶起来
发表于 2010-9-16 11:33:22 | 显示全部楼层
回复 24# 3mile

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

本帖子中包含更多资源

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

×
发表于 2010-9-16 12:33:37 | 显示全部楼层
回复 27# newuser
.exe正常的话,应该是你的AU3有问题了。
全新安装一个AU3吧。
发表于 2010-9-16 13:32:48 | 显示全部楼层
回复 28# 3mile
重装AU3就OK了!
发表于 2010-9-16 13:34:11 | 显示全部楼层
回复 29# newuser
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-18 20:54 , Processed in 0.088783 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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