VB中使用系統登錄檔 (轉)
VB中使用登錄檔
ini大多用來寸放自己介面或者初始化資訊,而應用要使用系統資訊或者說要得知已在系統註冊過的其他程式的一些資訊就要讀去系統登錄檔了,比如有些應用需要使用MS Express就需要從HKEY_LOCAL_MACHINESoftwareOutlook Express中的Install中讀取路徑。:namespace prefix = o ns = "urn:schemas-microsoft-com::office" />
申明部分:
Option Explicit
Public Const READ_CONTROL = &H20000
Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const SYNCHRONIZE = &H100000
Public Const STANDARD_RIGHTS_ALL = &H1F0000
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
Public Const ERROR_SUCCESS = 0&
Declare Function RegOpenKeyEx Lib "adv32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal sesired As Long, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Function sdaGetRegEntry(strKey As String, strSubKeys As String, strValName As String, lngType As Long) As String
On Error GoTo sdaGetRegEntry_Err
Dim lngResult As Long, lngKey As Long
Dim lngHandle As Long, lngcbData As Long
Dim strRet As String
Case strKey
Case "HKEY_CLASSES_ROOT": lngKey = &H80000000
Case "HKEY_CURRENT_CONFIG": lngKey = &H80000005
Case "HKEY_CURRENT_USER": lngKey = &H80000001
Case "HKEY_DYN_DATA": lngKey = &H80000006
Case "HKEY_LOCAL_MACHINE": lngKey = &H80000002
Case "HKEY_PERFORMANCE_DATA": lngKey = &H80000004
Case "HKEY_USERS": lngKey = &H80000003
Case Else: Exit Function
End Select
If Not ERROR_SUCCESS = RegOpenKeyEx(lngKey, strSubKeys, 0&, KEY_READ, lngHandle) Then Exit Function
lngResult = RegQueryValueEx(lngHandle, strValName, 0&, lngType, ByVal strRet, lngcbData)
strRet = Space(lngcbData)
lngResult = RegQueryValueEx(lngHandle, strValName, 0&, lngType, ByVal strRet, lngcbData)
If Not ERROR_SUCCESS = RegCloseKey(lngHandle) Then lngType = -1&
sdaGetRegEntry = strRet
sdaGetRegEntry_Exit:
On Error GoTo 0
Exit Function
sdaGetRegEntry_Err:
lngType = -1&
MsgBox Err & "> " & Error$, 16, "GenUtils/sdaGetRegEntry"
Resume sdaGetRegEntry_Exit
End Function
看起來很複雜,用起來卻簡單的緊,這就達到了複雜的目的了。
例如:使用OutLook Express
Dim outLook_Path As String
Dim shstring As String
outLook_Path = sdaGetRegEntry("HKEY_LOCAL_MACHINE", "SoftwareMicroSoftOutlook Express", "InstallRoot", 2)
shstring = Mid(Trim(outLook_Path), 1, Len(outLook_Path) - 1) & "msimn.exe"
shstring來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Java操作Windows系統登錄檔JavaWindows
- win10系統中登錄檔如何開啟 win10系統開啟登錄檔的步驟Win10
- win10系統怎麼修復登錄檔_win10登錄檔怎麼修復Win10
- win10系統登錄檔怎麼修復 win10一鍵修復登錄檔Win10
- 使用 Fstransform 轉換檔案系統ORM
- Win10系統如何清理登錄檔垃圾【圖文】Win10
- Win10系統怎麼修改登錄檔ProfileName值Win10
- 登錄檔
- win10怎麼刪除系統無用的登錄檔 win10如何清理無效登錄檔Win10
- win10系統修改登錄檔後儲存不了提示寫入登錄檔時出錯如何解決Win10
- win10系統提示無法匯入登錄檔xxx未將所有資料都成功寫入到登錄檔中如何解決Win10
- Win10系統清理登錄檔垃圾的方法【圖文】Win10
- Win10系統利用登錄檔隱藏onedrive的方法Win10
- win10系統如何通過登錄檔關閉135埠_win10利用登錄檔關閉135埠的方法Win10
- win10系統如何透過登錄檔關閉135埠_win10利用登錄檔關閉135埠的方法Win10
- 登錄檔碎片整理是一種最佳化作業系統登錄檔的方法,旨在減少登錄檔檔案的碎片化,從而提高系統效能和響應速度。它透過重新整理和最佳化登錄檔檔案的儲存結構,以及壓縮空閒空間等方式,來改善系統的整體表現。作業系統
- JQuery登錄檔單jQuery
- Windows10系統登錄檔出現問題怎麼修復Windows
- win10登錄檔損壞進不了系統該怎麼辦Win10
- 使用SSHFS檔案系統遠端掛載目錄
- Linux檔案系統、目錄Linux
- win10修改登錄檔沒有許可權怎麼辦 win10系統下修改登錄檔許可權的方法Win10
- Win10系統下控制皮膚怎麼新增“編輯登錄檔”Win10
- 聊聊 SAP ABAP 系統裡除了 TADIR 之外的其他登錄檔試讀版
- Win10系統怎麼恢復登錄檔自動備份功能Win10
- win10系統如何在控制皮膚中新增“編輯登錄檔”Win10
- win登錄檔相關
- 獲取登錄檔字型
- 常用登錄檔的位置
- win10系統修改錄音檔案中的檔名的方法Win10
- 獲取Linux系統中目錄檔案大小的方法Linux
- 隱藏任意程式,目錄檔案,登錄檔,埠
- C# 登錄檔法-限制軟體使用次數C#
- win10系統下新增登錄檔後exe打不開如何解決Win10
- Win10系統提示登錄檔已被管理員禁用了怎麼解決Win10
- win10登錄檔啟動項在哪_win10啟動項在登錄檔中的什麼位置Win10
- 透過HHDESK,將windows中的檔案轉移至Linux系統中WindowsLinux
- win10如何清除登錄檔_win10清理登錄檔垃圾的方法Win10
- win10如何修復登錄檔 windows10登錄檔修復方法Win10Windows