使用INI文件保存用户名和密码即可

解决方案 »

  1.   

    存到数据库中也可以,有三个字段:用户名/密码/是否记住密码,当用户输入用户名后,检查此用户名的"是否记住密码"字段是否为True,如果是,就把密码显示到密码框中
      

  2.   

    1.使用INI文件保存
    2.使用注册表保存
    下面是具体说明
    1.
    Option Explicit
    Private 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
    '-----------------------------------------------------------------------------------------------------
    '-说明
    '     为初始化文件中指定的条目取得字串
    '-返回值
    '     Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓
    '     冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2)
    '-参数表
    '     参数                       类型及说明
    '       lpApplicationName..........String,欲在其中查找条目的小节名称。这个字串不区分大小写。
    '                                          如设为vbNullString,就在lpReturnedString缓冲区内装
    '                                          载这个ini文件所有小节的列表
    '       lpKeyName..................String,欲获取的项名或条目名。这个字串不区分大小写。如设为
    '                                          vbNullString,就在lpReturnedString缓冲区内装载指定
    '                                          小节所有项的列表
    '       lpDefault..................String,指定的条目没有找到时返回的默认值。可设为空("")
    '       lpReturnedString...........String,指定一个字串缓冲区,长度至少为nSize
    '       nSize......................Long,  指定装载到lpReturnedString缓冲区的最大字符数量
    '       lpFileName.................String,初始化文件的名字。如没有指定一个完整路径名,windows
    '                                          就在Windows目录中查找文件
    '-注解
    '      如lpKeyName参数为vbNullString,那么lpReturnedString缓冲区会载入指定小节所有设置项的一个
    '      列表。每个项都用一个NULL字符分隔,最后一个项用两个NULL字符中止。
    '-----------------------------------------------------------------------------------------------------
    Private Declare Function WritePrivateProfileString Lib "Kernel32" _
                                  Alias "WritePrivateProfileStringA" (ByVal AppName As String, _
                                                                      ByVal KeyName As String, _
                                                                      ByVal keydefault As String, _
                                                                      ByVal Filename As String) As Long
    '--------------------------------------------------------------------------------------------------
    '-说明
    '      在初始化文件指定小节内设置一个字串
    '-返回值
    '      Long,非零表示成功,零表示失败。会设置GetLastError
    '-参数表
    '      参数                       类型及说明
    '        lpApplicationName..........String,要在其中写入新字串的小节名称。这个字串不区分大小写
    '        lpKeyName..................Any,   要设置的项名或条目名。这个字串不区分大小写。
    '                                           用vbNullString可删除这个小节的所有设置项
    '        lpString...................String,指定为这个项写入的字串值。用vbNullString表示删除这
    '                                           个项现有的字串
    '        lpFileName.................String,初始化文件的名字。如果没有指定完整路径名,则windows
    '                                           会在windows目录查找文件。如果文件没有找到,则函数会
    '                                           创建它
    '--------------------------------------------------------------------------------------------------
    Public Enum eEditType
        eWriteIni = 2   '写入
        eReadIni = 1    '读取
    End Enum
    '-----------------------------------------------------------------------
    '-g_sngRegedit(App.Path & "sz.ini", "设置", "提示", "123", eReadIni)
    '-g_sngRegedit(App.Path & "sz.ini", "设置", "提示", "12345", eWriteIni)
    '-INI文件编辑(读取、写入)
    '-IniFile       :INI文件名及路径
    '-IniSection    :小节名称
    '-IniKey        :项名
    '-IniDefaultInfo:值(读取eReadIni :条目没有找到时返回的默认值
    '                    写入eWriteIni:写入的字串值)
    '-mType         :操作类型(读、写)
    '-----------------------------------------------------------------------
    Public Function g_sngRegedit(IniFile As String, IniSection As String, IniKey As String, IniDefaultInfo As String, mType As eEditType) As String
        Dim retval As Long
        Dim lpDefault As String
        Dim lpReturnedString As String
        Dim nSize As Long
        
        lpDefault = Space$(254)                         '初始化字符串
        lpDefault = IniDefaultInfo
        lpReturnedString = Space$(254)                  '初始化字符串
        nSize = 254                                     '缓冲区大小    Select Case mType
            Case eReadIni
                retval = GetPrivateProfileString(IniSection, IniKey, lpDefault, lpReturnedString, nSize, IniFile) '读INI
                g_sngRegedit = Trim$(lpReturnedString) '去处前导、尾随空格(如全为空则反回一个空格)
            Case eWriteIni
                retval = WritePrivateProfileString(IniSection, IniKey, IniDefaultInfo, IniFile) '写INI
                g_sngRegedit = Trim$(Str$(retval)) '将retval转换成String后去处前导、尾随空格
        End Select
    End Function
      

  3.   

    2.读写RegSaveSetting 函数在 Windows 注册表中保存或建立应用程序项目。语法SaveSetting appname, section, key, settingSaveSetting 语句的语法具有下列命名参数:部分 描述 appname 必要。字符串表达式,包含应用程序或工程的名称,对这些应用程序或工程使用设置 
    section 必要。字符串表达式,包含区域名称,在该区域保存注册表项设置。 
    key 必要。字符串表达式,包含将要保存的注册表项设置的名称。 
    setting 必要。表达式,包含 key 的设置值。 
    说明如果无论如何也不能保存注册表项设置,则将导致错误发生。
    GetSetting 函数
          从 Windows 注册表中的应用程序项目返回注册表项设置值。语法GetSetting(appname, section, key[, default])GetSetting 函数的语法具有下列命名参数:部分 描述 appname 必要。字符串表达式,包含应用程序或工程的名称,要求这些应用程序或工程有注册表项设置。 
    section 必要。字符串表达式,包含区域名称,要求该区域有注册表项设置。 
    key 必要。字符串表达式,返回注册表项设置的名称。 
    default 可选。表达式,如果注册表项设置中没有设置值,则返回缺省值。如果省略,则 default 取值为长度为零的字符串 ("")。 
    说明如果 GetSetting 的参数中的任何一项都不存在,则 GetSetting 返回 default 的值。
      

  4.   

    本示例首先使用 SaveSetting 语句来建立Windows注册区(或 16位 Windows 平台的.ini档)里 appname 应用程序的项目,然后使用 GetSetting 函数来得到其中一项设置并显示出来。因为有传入参数 default,GetSetting 函数一定会有返回值。请注意,section 名称不能用 GetSetting 函数取得。最后,使用 DeleteSetting 语句将该应用程序项删除。' 用来保存 GetSetting 函数所返回之二维数组数据的变量。
    Dim MySettings As Variant
    ' 在注册区中添加项目。
    SaveSetting "MyApp","Startup", "Top", 75
    SaveSetting "MyApp","Startup", "Left", 50Debug.Print GetSetting(appname := "MyApp", section := "Startup", _
                           key := "Left", default := "25")DeleteSetting "MyApp", "Startup"
      

  5.   

    to:zephyr_zhao(zephyr)
       非常感谢你的回复,请问你可以将代码发至
       这里看不太清楚,麻烦了!另外,如果你能给点关于API的注解最好!谢谢
      

  6.   

    用注册表的方法'保存密码,不过最好经过加密,要不然一目了然
    private Sub SavePassword(strPassword as string)
    {
        call SaveSetting(App.Title,"Password","Password",strPassword)
    }'读取密码
    private function GetPassword() as string
    {
        GetPassword = GetSetting(App.Title,"Password","Password","")
    }
      

  7.   

    请问这两个password的参数是做什么用的?
      

  8.   

    是不是让用户输入的那种模式,那么在你检查密码正确之后保存,在窗体的Load里面读取