• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    VB中使用系統注冊表

    發布: 2007-5-25 09:19 | 作者: shuyi | 來源: 互聯網 | 查看: 32次 | 進入軟件測試論壇討論

    領測軟件測試網  

    VBMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用系統注冊表

    ini文件大多用來寸放自己界面或者初始化信息,而應用程序要使用系統信息或者說要得知已在系統注冊過的其他程序的一些信息就要讀去系統注冊表了,比如有些應用需要使用調用MS OutLook Express就需要從HKEY_LOCAL_MACHINE\Software\Microsoft\Outlook Express\中的InstallRoot中讀取路徑。

     

    申明部分:

    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 "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired 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

    Select 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", "Software\MicroSoft\Outlook Express\", "InstallRoot", 2)

    shstring = Mid(Trim(outLook_Path), 1, Len(outLook_Path) - 1) & "\msimn.exe"

    Shell shstring

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>