对于一个系统,它的设置用什么保存最好,注册表?。INI文件,例如自动登陆,等
如有好的建议,速回帖,谢谢,有原码更好。

解决方案 »

  1.   

    一个模块,写注册表和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 CodeDim lRetValue As Long
    Dim lKeyID As LonglRetValue = 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 FunctionPublic 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 LongsKeyValue = 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 0sKeyValue = 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 FunctionPublic 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