'增加一个list1的列表框: '以下是编历HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 下的所有键, '你看一下是否有你要的PhotoshopConst ERROR_NO_MORE_ITEMS = 259& Const HKEY_CURRENT_CONFIG = &H80000005 Const HKEY_LOCAL_MACHINE = &H80000002 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As LongPublic Function LoadRes(ByVal ResString As String) As String() Dim hKey As Long Dim Cnt As Long Dim sName As String Dim sData As String Dim Ret As Long Dim RetData As Long Dim Data() As String Dim Count As Long
Const BUFFER_SIZE As Long = 255
Ret = BUFFER_SIZE If RegOpenKey(HKEY_LOCAL_MACHINE, ResString, hKey) = 0 Then sName = Space(BUFFER_SIZE) While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS Count = Count + 1 ReDim Preserve Data(Count) As String Data(Count) = Left$(sName, Ret) Cnt = Cnt + 1 sName = Space(BUFFER_SIZE) Ret = BUFFER_SIZE Wend RegCloseKey hKey Else ReDim Data(0) As String Data(0) = "没有找到项目" End If
LoadRes = Data() End FunctionPrivate Sub Form_Load() Dim Data() As String Data = LoadRes("Software\microsoft\windows\currentversion\uninstall") If UBound(Data) > 0 Then For i = 1 To UBound(Data) List1.AddItem Data(i) Next End If End Sub
如果安装了photoshop,注册表中会存在HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Photoshop这个项,而且下面还有一个以版本号命名的子项,比如HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Photoshop\8.0,里面有个ApplicationPath键,该键的值为photoshop的安装路径,比如C:\Program Files\Adobe\Photoshop CS\
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
里面就是系统所有安装的软件
'增加一个list1的列表框:
'以下是编历HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 下的所有键,
'你看一下是否有你要的PhotoshopConst ERROR_NO_MORE_ITEMS = 259&
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As LongPublic Function LoadRes(ByVal ResString As String) As String()
Dim hKey As Long
Dim Cnt As Long
Dim sName As String
Dim sData As String
Dim Ret As Long
Dim RetData As Long
Dim Data() As String
Dim Count As Long
Const BUFFER_SIZE As Long = 255
Ret = BUFFER_SIZE
If RegOpenKey(HKEY_LOCAL_MACHINE, ResString, hKey) = 0 Then
sName = Space(BUFFER_SIZE)
While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
Count = Count + 1
ReDim Preserve Data(Count) As String
Data(Count) = Left$(sName, Ret)
Cnt = Cnt + 1
sName = Space(BUFFER_SIZE)
Ret = BUFFER_SIZE
Wend
RegCloseKey hKey
Else
ReDim Data(0) As String
Data(0) = "没有找到项目"
End If
LoadRes = Data()
End FunctionPrivate Sub Form_Load()
Dim Data() As String
Data = LoadRes("Software\microsoft\windows\currentversion\uninstall")
If UBound(Data) > 0 Then
For i = 1 To UBound(Data)
List1.AddItem Data(i)
Next
End If
End Sub
下有个例子,是判断本机是否安装了MS EXCEL,而换成Photoshop我就不知道如何改了?
这样 绿色版的 也能检查出来了