RegQueryValueEx

なでしこでWindowsAPIを使う時の書式を各API毎にソースを載せています。
返信する
choco
管理人
記事: 279
登録日時: 2011年5月30日(月) 10:44

RegQueryValueEx

投稿記事 by choco »

#20230203
#規定のブラウザ変更する前にレジストリの型を確認してみる。

●RegOpenKeyEx(hKey,lpSubKey,ulOptions,samDesired,phkResult) =DLL(“advapi32.dll”,
“LONG RegOpenKeyExA(
HKEY hKey, // 開いている親キーのハンドル
LPCTSTR lpSubKey, // 開くべきサブキーの名前
DWORD ulOptions, // 予約済み
DWORD samDesired, // セキュリティアクセスマスク
PHKEY hKeyA // 開くことに成功したサブキーのハンドル
)”)
●RegQueryValueEx(hKey,lpValueName,lpReserved,lpType,{参照渡し}lpData,lpcbData) =DLL(“advapi32.dll”,
“LONG RegQueryValueExA(
HKEY hKey, // キーのハンドル
LPCTSTR lpValueName, // レジストリエントリ名
LPDWORD lpReserved, // 予約済み
LPDWORD lpType, // データ型が格納されるバッファ
LPBYTE lpData, // データが格納されるバッファ
LPDWORD lpcbData // データバッファのサイズ
)”)
●RegCloseKey(hKey) =DLL(“Advapi32.dll”,
“LONG RegCloseKey(
HKEY hKey
)”)
!KEY_ALL_ACCESS = $000F003F

!HKEY_CLASSES_ROOT = $80000000
!HKEY_CURRENT_USER = $80000001
!HKEY_LOCAL_MACHINE = $80000002
!HKEY_USERS = $80000003
!HKEY_CURRENT_CONFIG = $80000005

レジストリハンドルとは整数
RegOpenKeyEx(HKEY_CURRENT_USER,”Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice”,0,KEY_ALL_ACCESS,POINTER(レジストリハンドル))

型とは整数
データサイズとは整数=255
#データサイズは255
データとは文字列
データにデータサイズを確保
RegQueryValueEx(レジストリハンドル,「ProgId」,0,POINTER(型),REG_UI_DATA,POINTER(データサイズ))
型で条件分岐
 0ならばREGFLG_SU=0#「REG_NONE」という
 1ならばREGFLG_SU=1#「REG_SZ」という
 2ならばREGFLG_SU=2#「REG_EXPAND_SZ」という
 3ならばREGFLG_SU=3#「REG_BINARY」という
 4ならばREGFLG_SU=4#「REG_DWORD」という
 5ならばREGFLG_SU=5#「REG_DWORD_BIG_ENDIAN」という
 6ならばREGFLG_SU=6#「REG_LINK」という
 7ならばREGFLG_SU=7#「REG_MULTI_SZ」という
 8ならばREGFLG_SU=8#「REG_RESOURCE_LIST」という
 11ならばREGFLG_SU=11#「REG_QWORD」という

RegCloseKey(レジストリハンドル)
REGFLG_SUを言う
終わる。
返信する