国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

教你在VB中如何使用注冊表

2019-11-18 17:41:05
字體:
來源:轉載
供稿:網友
Windows系統中的注冊表(Resgister)保存著大量的信息,我們可讀寫注冊表來更好地為我們軟件服務。
  下面詳細講敘如何通過調用API函數操作注冊表:如何打開、創建主鍵,如何保存鍵值,以及查詢某鍵的鍵值等。

  一、常數定義和API申明(我們會在使用該API時對它進行說明):  PRivateConstHKEY_CLASSES_ROOT=&H80000000主鍵
  PrivateConstHKEY_CURRENT_USER=&H80000001主鍵
  PrivateConstSTANDARD_RIGHTS_ALL=&H1F0000
  PrivateConstKEY_ENUMERATE_SUB_KEYS=&H8
  PrivateConstKEY_SET_VALUE=&H2
  PrivateConstKEY_CREATE_SUB_KEY=&H4
  PrivateConstKEY_QUERY_VALUE=&H1
  PrivateConstKEY_NOTIFY=&H10
  PrivateConstKEY_CREATE_LINK=&H20
  PrivateConstSYNCHRONIZE=&H100000
  PrivateConstKEY_ALL_access=((STANDARD_RIGHTS_ALLOrKEY_QUERY_VALUEOrKEY_SET_VALUEOrKEY_CREATE_SUB_KEYOrKEY_ENUMERATE_SUB_KEYSOrKEY_NOTIFYOrKEY_CREATE_LINK)And(NotSYNCHRONIZE))
  PrivateConstREG_MULTI_SZ=7
  PrivateConstERROR_SUCCESS=0&
  PrivateConstREAD_CONTROL=&H20000
  PrivateConstREG_SZ=1
  PrivateConstREG_DWord=4
  PrivateConstREG_EXPAND_SZ=2
  PrivateConstREG_BINARY=3
  PrivateConstREG_DWORD_BIG_ENDIAN=5
  PrivateConstREG_DWORD_LITTLE_ENDIAN=4
  PrivateConstREG_NONE=0
  PrivateDeclareFunctionRegOpenKeyExLib“advapi32.dll"Alias“RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegCreateKeyLib“advapi32.dll"Alias“RegCreateKeyA"(ByValhKeyAsLong,ByVallpSubKeyAsString,phkResultAsLong)AsLong
  PrivateDeclareFunctionRegSetValueExLib“advapi32.dll"Alias“RegSetValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByValReservedAsLong,ByValdwTypeAsLong,lpDataAsAny,ByValcbDataAsLong)AsLong
  PrivateDeclareFunctionRegQueryValueExLib"advapi32.dll"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,lpTypeAsLong,lpDataAs

  Any,lpcbDataAsLong)AsLongPrivateDeclareFunctionRegCloseKeyLib"advapi32.dll"(ByValhKeyAsLong)AsLong

  二、將下列代碼放在窗體的Load事件中
  PrivateSubForm_Load()
  DimhKeyAsLong主鍵的句柄
  DimlpDataAsString查詢得到的鍵值
  DimSizeOfDataAsLong鍵值的長度
  DimValueTypeAsLong鍵值的類型
  SizeOfData=150
  Dimreturn_OpenKeyAsLong函數調用的返回值
  DimPriKeyAsString主鍵
  DimKeyValue1,KeyValue2AsString鍵值名稱
  PriKey="北信BITI/People"主鍵
  KeyValue1="教授"鍵值名稱
  KeyValue2="學生"鍵值名稱
  下面的函數RegOpenKeyEx取得一個句柄hKey

return_OpenKey=RegOpenKeyEx(HKEY_CURRENT_USER,"",0,KEY_ALL_ACCESS,hKey)
 
  下面的函數RegCreateKey建立一個主鍵,如此鍵已存在,則打開它IfRegCreateKey(hKey,PriKey,hKey)<>ERROR_SUCCESSThen
MsgBox"create"&PriKey&"Failed"
ExitSub
EndIf
  
DimKeyDataAsString鍵值
KeyData="500"

  下面的函數RegSetValueEx給指定的鍵值名稱賦鍵值

IfRegSetValueEx(hKey,KeyValue1,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)<>ERROR_SUCCESSThen
  MsgBox"SetValue"&KeyValue1&"Failed"
  ExitSub
  EndIf
  KeyData="15020"

  下面的函數RegSetValueEx給指定的鍵值名稱"學生"賦鍵值為"15020"

IfRegSetValueEx(hKey,KeyValue2,0&,REG_SZ,ByValKeyData,Len(KeyData)+1)<>ERROR_SUCCESSThen
MsgBox"SetValue"&KeyValue2&"Failed"
ExitSub
EndIf
  
return_OpenKey=RegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,0&,SizeOfData)
lpData=String(SizeOfData+1,"")

  下面的函數RegQueryValueEx檢索指定鍵值名稱的鍵值和鍵值類型

IfRegQueryValueEx(hKey,KeyValue1,0&,REG_SZ,ByVallpData,SizeOfData)<>ERROR_SUCCESSThen
MsgBox"Query"&KeyValue1&"Failed"
EndIf
RegCloseKey(hKey)釋放主鍵的句柄
EndSub

  運行此程序后,打開注冊表,我們會發現在主鍵HKEY_CURRENT_USER(在此主鍵下記錄本機當前用戶的一些信息)下,增加了子鍵"北信BITI/People",我們還可看到兩個指定的鍵值名稱都有正確的鍵值。從而完成了注冊的任務。

  注:此程序在VB5.0中運行通過。

->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广水市| 霍城县| 大庆市| 卓尼县| 清河县| 调兵山市| 齐齐哈尔市| 琼结县| 岚皋县| 庐江县| 台安县| 太仆寺旗| 桐城市| 石阡县| 井陉县| 上思县| 天等县| 潼关县| 遵义市| 鹤庆县| 甘谷县| 离岛区| 洮南市| 佛坪县| 宜黄县| 东城区| 嵊泗县| 达拉特旗| 济源市| 且末县| 手机| 弋阳县| 德兴市| 类乌齐县| 锡林浩特市| 泽普县| 文成县| 南汇区| 鹰潭市| 永和县| 钟祥市|