下面给出示例: Option Explicit Private 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 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 LongPublic Sub SetIni(Strkey As String, Stritem As String, Str As Variant) '文件写入函数 '[strkey]为小节名称、stritem= 为项名或条目名、 buff为写入的值 Dim lngX As Long Dim buff As String * 128
buff = Str & Chr(0) lngX = WritePrivateProfileString(Strkey, Stritem, buff, App.Path & "\WorkDiary.ini") End SubPublic Function GetIni(Strkey As String, Stritem As String) As String '取得初始信息的子过程 '[strkey]小节名称、stritem= 要取得地项名或条目名的值 Dim lngX As Long, intX As Integer Dim buff As String * 128
case "狗"
frmMain.numFile.Enable=False
case "猫"
frmMain.numFile.Enable=True
end select
在form_load事件中
写入如果用户名不等于你所设定的值
可用楼上的方法解决
该表可以由用户名以及各个菜单项的名称组成.用户可先设一个由用户设置权限的窗体,保存到库中,若赋予了相应的权限存为"1",无此权限为"0".然后,在form_load 中按照登录者的用户名到此表中相应的对照,读出数据,值为"1"的菜单项,enabled=true,值为"0"的,enabeld=false.
Option Explicit
Private 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
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 LongPublic Sub SetIni(Strkey As String, Stritem As String, Str As Variant)
'文件写入函数 '[strkey]为小节名称、stritem= 为项名或条目名、 buff为写入的值
Dim lngX As Long
Dim buff As String * 128
buff = Str & Chr(0)
lngX = WritePrivateProfileString(Strkey, Stritem, buff, App.Path & "\WorkDiary.ini")
End SubPublic Function GetIni(Strkey As String, Stritem As String) As String
'取得初始信息的子过程 '[strkey]小节名称、stritem= 要取得地项名或条目名的值
Dim lngX As Long, intX As Integer
Dim buff As String * 128
Call GetPrivateProfileString(Strkey, Stritem, "", buff, 128, App.Path & "\WorkDiary.ini")
intX = InStr(buff, Chr(0))
GetIni = Trim(Left(buff, intX - 1))
'返回字串
End Function使用时:
在退出时存储ini参数值
SetIni "UserA", "cmdOKChecked", cmdOK.Checked
启动时取出ini参数值:
cmdOK.checked = getini ("UserA","cmdOKchecked")