我是这么做的,但是还是没有数值传到 S = String(1024, 0) Length = GetPrivateProfileString("windows", "programs", "", S, Len(S) , App.path + "\option.ini") S = Left(S, Length)
我写的Ini模块:Attribute VB_Name = "BasIni" 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 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 'FileName:Ini文件 'PathName:小节名 'KeyName:值名 'WriteValue:值 Public Function WriteIni(FileName As String, _ PathName As String, _ KeyName As String, _ WriteValue As String) As Long Dim Rc As Long
End Function'FileName:Ini文件 'PathName:小节名 'KeyName:值名 'BackValue:返回值 'Default:默认字符 Public Function ReadIni(FileName As String, _ PathName As String, _ KeyName As String, _ BackValue As String, _ Optional Default As String = "缺省") As Long Dim Rc As Long Dim TempNum As String Dim TempStr As String
If Rc <> 0 Then BackValue = Left$(TempStr, TempNum)
End If
ReadIni = Rc
End Function
Function GetINI(Section As String, KeyName As String, Optional Default As String, Optional FN As String) As String '从文件中读取INI信息 Dim Value As String Dim ValueLen As Long Dim Msg As String
On Error Resume Next ValueLen = 4096 + 4 Value = Space$(ValueLen) ValueLen = GetPrivateProfileString(Section, KeyName, Default, Value, ValueLen, FN) Value = Trim(Left(Value, ValueLen)) If Asc(Right(Value, 1)) = 0 Then Value = Left(Value, Len(Value) - 1) GetINI = Value End Function
Length = GetPrivateProfileString("windows", "programs", "", S, Len(S) , App.path + "\option.ini")
S = Left(S, Length)
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
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
'FileName:Ini文件
'PathName:小节名
'KeyName:值名
'WriteValue:值
Public Function WriteIni(FileName As String, _
PathName As String, _
KeyName As String, _
WriteValue As String) As Long
Dim Rc As Long
Rc = WritePrivateProfileString(PathName, KeyName, WriteValue, FileName)
WriteIni = Rc
End Function'FileName:Ini文件
'PathName:小节名
'KeyName:值名
'BackValue:返回值
'Default:默认字符
Public Function ReadIni(FileName As String, _
PathName As String, _
KeyName As String, _
BackValue As String, _
Optional Default As String = "缺省") As Long
Dim Rc As Long
Dim TempNum As String
Dim TempStr As String
TempStr = String$(255, Chr$(0))
TempNum = 255
Rc = GetPrivateProfileString(PathName, KeyName, Default, TempStr, TempNum, FileName)
If Rc <> 0 Then
BackValue = Left$(TempStr, TempNum)
End If
ReadIni = Rc
End Function
'从文件中读取INI信息
Dim Value As String
Dim ValueLen As Long
Dim Msg As String
On Error Resume Next
ValueLen = 4096 + 4
Value = Space$(ValueLen)
ValueLen = GetPrivateProfileString(Section, KeyName, Default, Value, ValueLen, FN)
Value = Trim(Left(Value, ValueLen))
If Asc(Right(Value, 1)) = 0 Then Value = Left(Value, Len(Value) - 1)
GetINI = Value
End Function