整个系统的设置保存方法。

rickjelly2004 2004-03-03 04:31:58
对于一个系统,它的设置用什么保存最好,注册表?。INI文件,例如自动登陆,等
如有好的建议,速回帖,谢谢,有原码更好。
...全文
57 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2004-03-16
  • 打赏
  • 举报
回复
一个模块,写注册表和ini的
'ModAPI.BAS
'Author: www.blanksoft
'
'Function: here are functions for Read/Write INI files & System Register
'Usage:
' 1 System Register: Call SaveReg("UserName", TxtUserName.Text)
' If LoadReg("UserName", sValue) = ERROR_SUCCESS Then
' 2 INI File: Call LoadINI(sINIFileName, sSectionName, "UserName", sTmp, "<None>")
' Call SaveINI(sINIFileName, sSectionName, "UserName", Trim(TxtUserName.Text))

Option Explicit
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public 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
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Const ERROR_SUCCESS = 0&
Public Const ERROR_ACCESS_DENIED = 5&
Public Const ERROR_INVALID_HANDLE = 6&
Public Const ERROR_BADDB = 1009&
Public Const ERROR_BADKEY = 1010&
Public Const ERROR_CANTOPEN = 1011&
Public Const ERROR_CANTREAD = 1012&
Public Const ERROR_CANTWRITE = 1013&
Public Const ERROR_REGISTRY_RECOVERED = 1014&
Public Const ERROR_REGISTRY_CORRUPT = 1015&
Public Const ERROR_REGISTRY_IO_FAILED = 1016&
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const REG_SZ = 1
'Below Function use for Read/Write INI File
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
' End of declare for Registry operation

'Const for System Register
Public Const REG_KEY_POS = "SOFTWARE\NANetTech\Falcon Xpresship WareHouse"
'HKEY_LOCAL_MACHINE\SOFTWARE\NANetTech\Falcon Xpresship WareHouse
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOW = 5
'Other Function
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
'Usage: Call CopyFile("Source.Dat", "Target.Dat", 1)

'get my computer name
Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Const MAX_COMPUTERNAME_LENGTH = 31


Public Function SaveReg(ByVal sKeyName As String, ByVal sKeyValue As String) As Long
'Save sKeyValue at sKeyName to System Register
'If Success SaveReg Return ERROR_SUCCESS,otherwise return Error Code

Dim lRetValue As Long
Dim lKeyID As Long

lRetValue = RegCreateKey(HKEY_LOCAL_MACHINE, REG_KEY_POS, lKeyID)
If lRetValue = ERROR_SUCCESS Then
lRetValue = RegSetValueEx(lKeyID, sKeyName, 0&, REG_SZ, ByVal sKeyValue, LenB(sKeyValue))
lRetValue = RegCloseKey(lKeyID)
End If
SaveReg = lRetValue
End Function

Public Function LoadReg(ByVal sKeyName As String, sKeyValue As String, Optional ByVal sDefaultValue = "") As Long
'Load sKeyName from System Register,Return value at sKeyValue
'If Success LoadReg Return ERROR_SUCCESS,otherwise return Error Code
Dim lRetValue As Long
Dim lKeyID As Long
Dim lType As Long

sKeyValue = String$(255, 0)
lRetValue = RegCreateKey(HKEY_LOCAL_MACHINE, REG_KEY_POS, lKeyID)
If lRetValue = ERROR_SUCCESS Then
lRetValue = RegQueryValueEx(lKeyID, sKeyName, 0&, lType, ByVal sKeyValue, LenB(sKeyValue))
If lRetValue = 0 Then
sKeyValue = Left$(sKeyValue, InStr(1, sKeyValue, Chr$(0)) - 1)
lRetValue = RegCloseKey(lKeyID)
Else
sKeyValue = sDefaultValue
Call RegCloseKey(lKeyID)
End If
End If
LoadReg = Trim(lRetValue)

End Function


Public Function LoadINI(ByVal sINIFileName As String, ByVal sSectionName As String, ByVal sKeyName As String, sKeyValue As String, Optional ByVal sDefaultValue = "") As Long
'Load sKeyName from App.Path & "\" & INI_FILE_NAME,Return value at sKeyValue
'If Success LoadINI Return NONE ZERO,else return 0

sKeyValue = Space(2048)
LoadINI = GetPrivateProfileString(sSectionName, sKeyName, sDefaultValue, sKeyValue, Len(sKeyValue), sINIFileName)
If LoadINI = 0 Then
sKeyValue = Trim(sDefaultValue)
Else
sKeyValue = Trim(sKeyValue)
End If
If Len(sKeyValue) > 0 Then
If Asc(Right(sKeyValue, 1)) = 0 Then
sKeyValue = Left(sKeyValue, Len(sKeyValue) - 1)
End If
End If
End Function

Public Function SaveINI(ByVal sINIFileName As String, ByVal sSectionName As String, ByVal sKeyName As String, ByVal sKeyValue As String) As Long
'Save sKeyValue at sKeyName to sINIFileName
'If Success SaveReg Return NONE ZERO,else return 0
SaveINI = WritePrivateProfileString(sSectionName, sKeyName, sKeyValue, sINIFileName)
End Function

--------------
www.blanksoft.com

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧