日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

RegQueryValueEx

 venus85 2010-09-30

RegQueryValueEx找回所打開注冊表鍵所關(guān)聯(lián)的一個給定值的類型和數(shù)據(jù)。

LONG RegQueryValueEx(  
HKEY
hKey, // 要查詢鍵的句柄
LPTSTR
lpValueName, // 要查詢值的名字的地址
LPDWORD
lpReserved, // 保留
LPDWORD
lpType, // 值類型緩存地址
LPBYTE
lpData, // 數(shù)據(jù)緩存地址
LPDWORD
lpcbData // 數(shù)據(jù)緩存大小地址);

參數(shù)

hKey
一個當前已打開鍵的句柄或下列已確定的保留句柄值:

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT:
HKEY_PERFORMANCE_DATA
Windows 95和Windows 98: HKEY_DYN_DATA

lpValueName
指向要查詢值的名字的字符串(以空字符結(jié)束)。

如果lpValueName是NULL或一個空字符串(""),這個函數(shù)找回這個鍵的未命名或默認值的類型和數(shù)據(jù)。

Windows 95和Windows 98: 每個鍵有一個默認值(最初的不包含數(shù)據(jù))。在Windows 95,這人默認值類型總是REG_SZ。在Windows 98,默認鍵的類型最初是REG_SZ,但可以通過RegSetValueEx指定一個默認值為不同的類型。

Windows NT: 鍵不能自動擁有一個未命名或默認的值,未命名的值可以是任何類型。

lpReserved
保留,必須是NULL.
lpType
指向與給定值相關(guān)聯(lián)數(shù)據(jù)的類型的變量。這個值將通過這個參數(shù)返回,將是下面之一:
含意
REG_BINARY 二進制數(shù)據(jù)。
REG_DWORD 一個32位數(shù)字。
REG_DWORD_LITTLE_ENDIAN 一個little-endian格式的32位數(shù)字。這相當于REG_DWORD。

little-endian格式,是一個多字節(jié)值在內(nèi)存中被從低字節(jié)到高字節(jié)存貯。如,值 0x12345678在little-endian格式中被存貯為(0x78 0x56 0x34 0x12)。

Windows NT, Windows 95,和Windows 98是有意運行在little-endian計算機體系上的。例如像一些UNIX系統(tǒng),一個用戶必須連接到big-endian體系的計算機上。

REG_DWORD_BIG_ENDIAN 一個big-endian格式的32位數(shù)字。

big-endian格式,一個多字節(jié)值在內(nèi)存職被從高字節(jié)到低字節(jié)存貯。如,值0x12345678在big-endian格式中被存貯為(0x12 0x34 0x56 0x78)。

REG_EXPAND_SZ 一個包含未被引用的環(huán)境變量的以空字符結(jié)束的字符串(如,"%PATH%")。它是Unicode字符串還是ANSI字符串將依賴你所使用的是Unicode函數(shù)還是ANSI函數(shù)。擴展環(huán)境變量引用,使用 ExpandEnvironmentStrings函數(shù)。
REG_LINK 一個Unicode符號連接。
REG_MULTI_SZ 一個以空字符結(jié)束的字符串數(shù)組,被兩個null字符結(jié)束。
REG_NONE 未定義值類型。
REG_RESOURCE_LIST 一個設(shè)備驅(qū)動資源列表。
REG_SZ 一個以空字符結(jié)束的字符串。它是 Unicode字符串還是 ANSI字符串將依賴你所使用的是 Unicode函數(shù)還是 ANSI函數(shù)。

如果不需要類型lpType參數(shù)可以為空(NULL)。

lpData
指定接收值數(shù)據(jù)的緩存區(qū)。如果數(shù)據(jù)是不需要的這個參數(shù)可以為空。
lpcbData
以字節(jié)為單位,指向lpData參數(shù)所指定地緩存區(qū)大小的變量。函數(shù)返回復制到lpData的數(shù)據(jù)大小的變量。

如果數(shù)據(jù)是REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ類型,那么lpcbData還將包括以空字符結(jié)束的大小。

如果lpData是NULL,lpcbData參數(shù)可以是NULL。

如果被lpData參數(shù)指定的緩存不夠大,這個函數(shù)返回ERROR_MORE_DATA值,并取回被lpcbData指定的變量緩存的大?。ㄒ宰止?jié)為單位)。

如果lpData是NULL,lpcbData不是NULL,這個函數(shù)返回ERROR_SUCCESS,并取回被lpcbData指定的變量緩存的大小(以字節(jié)為單位)。這個為值的數(shù)據(jù)緩存分配最好的途徑。

Window NT: 如果hKey指定為HKEY_PERFORMANCE_DATA,并且lpData緩存太小,RegQueryValueEx返回ERROR_MORE_DATA,但是lpcbData不能返回必需的緩存大小。這是因為運用數(shù)據(jù)的大小可以在調(diào)用的下一步被改變。在這種情形下,你必須增加緩存的大小并重新調(diào)用RegQueryValueEx通過lpcbData 參數(shù)更新緩存大小。重復直到函數(shù)成功。 你需要維護一個單獨的變量去留意緩存的大小。因為被lpcbData返回的值是可不預知的。

返回值

如果這個函數(shù)成功,返回ERROR_SUCCESS。

如果調(diào)有失敗,返回一個非零錯誤碼(定義在WINERROR.H)。你可以使用帶有FORMAT_MESSAGE_FROM_SYSTEM標記的FormatMessage函數(shù)獲得錯誤的普通描述信息。

注意

hKey確定的鍵必須是被帶有KEY_QUERY_VALUE標記打開的。打開鍵,使用RegCreateKeyEx函數(shù)或RegOpenKeyEx函數(shù)。

如果值數(shù)據(jù)是REG_SZ、REG_MULTI_SZ或REG_EXPAND_SZ類型,這個函數(shù)的ANSI版本將被使用(明確的調(diào)用RegQueryValueExA或在包含WINDOWS.H文件前不定義UNICODE),這個函數(shù)在復制它到lpData指定的緩存中以前,轉(zhuǎn)換存貯地Unicode字符串為ANSI字符串。

Window NT: 當調(diào)用RegQueryValueEx函數(shù)并hKey被設(shè)置成HKEY_PERFORMANCE_DATA句柄,給定對象的值字符串時,返回數(shù)據(jù)結(jié)構(gòu)往往是未定義的對象。不要感到驚訝;這是正常的。當調(diào)RegQueryValueEx函數(shù)時,you should always expect to walk the returned data structure to look for the requested object.

快速信息

  Windows NT: 需要3.1或更高版本。
  Windows: 需要Windows 95或更高版本。
  Windows CE: 需要1.0或更高版本。
  頭文件: winreg.h。
  輸入庫: advapi32.lib。
  Unicode: 在Windows NT中作為Unicode或ANSI執(zhí)行。

參見

Registry Overview, Registry Functions, ExpandEnvironmentStrings, RegCreateKeyEx, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegOpenKeyEx, RegQueryInfoKey, RegQueryValue

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多