by cv603 » 2006年3月01日(水) 16:59
メモリ確保はやっています。
------------------------
Dim hKey As HKEY
Dim phkResult As HKEY
Dim lpSubKey As String
Dim ValueName As String
Dim lpReserved As DWord
Dim RegType As DWord
Dim lpType As DWordPtr
Dim lpData As VoidPtr
Dim lpcbData As DWordPtr
Dim Company As String
Dim CompanyL As Long
hKey = HKEY_LOCAL_MACHINE
lpSubKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
If RegOpenKeyEx(hKey, lpSubKey, 0, KEY_READ, phkResult) = ERROR_SUCCESS Then
ValueName = "RegisteredOrganization"
lpReserved = 0
RegType = REG_SZ
lpType = VarPtr(RegType)
lpData = VarPtr(Company)
lpcbData = VarPtr(CompanyL)
If RegQueryValueEx(phkResult,ValueName,lpReserved,lpType,lpData,lpcbData)= ERROR_SUCCESS Then
Company = String$(CompanyL," ")
If RegQueryValueEx(phkResult,ValueName,lpReserved,lpType,lpData,lpcbData)= ERROR_SUCCESS Then
Else Goto *Read_error
End If
Else Goto *Read_error
End If
End If
RegCloseKey(phkResult)
------------------------
エラーは出ないのですが Company には何も読み込まれていません。
CompanyL には文字数が入ってきます。
RegOpenKeyEx のパラメータを色々変えてみましたが(NULL指定とか)うまくいきません。
読取るレジストリの値が REG_DWORD の場合はうまくいくんですが。
メモリ確保はやっています。
------------------------
Dim hKey As HKEY
Dim phkResult As HKEY
Dim lpSubKey As String
Dim ValueName As String
Dim lpReserved As DWord
Dim RegType As DWord
Dim lpType As DWordPtr
Dim lpData As VoidPtr
Dim lpcbData As DWordPtr
Dim Company As String
Dim CompanyL As Long
hKey = HKEY_LOCAL_MACHINE
lpSubKey = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
If RegOpenKeyEx(hKey, lpSubKey, 0, KEY_READ, phkResult) = ERROR_SUCCESS Then
ValueName = "RegisteredOrganization"
lpReserved = 0
RegType = REG_SZ
lpType = VarPtr(RegType)
lpData = VarPtr(Company)
lpcbData = VarPtr(CompanyL)
If RegQueryValueEx(phkResult,ValueName,lpReserved,lpType,lpData,lpcbData)= ERROR_SUCCESS Then
Company = String$(CompanyL," ")
If RegQueryValueEx(phkResult,ValueName,lpReserved,lpType,lpData,lpcbData)= ERROR_SUCCESS Then
Else Goto *Read_error
End If
Else Goto *Read_error
End If
End If
RegCloseKey(phkResult)
------------------------
エラーは出ないのですが Company には何も読み込まれていません。
CompanyL には文字数が入ってきます。
RegOpenKeyEx のパラメータを色々変えてみましたが(NULL指定とか)うまくいきません。
読取るレジストリの値が REG_DWORD の場合はうまくいくんですが。