我在ini里指定地址,然后调用里面指定路径的程序
请问怎么样实现?
我想调用的是ini里##间的路径!
请哪位大虾给点代码!
分不够再加!

解决方案 »

  1.   

    http://www.easthot.net/article_read.asp?id=40
      

  2.   


    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
    '读取INI文件
    Function GetIni(ByVal Key$, ByVal Data$ = "",ByVal sIniFileName, Optional ByVal DefaltValue$) As String
        Dim ReturnS As String * 256, tempStr$
        If sIniFileName = "" Then sIniFileName = MainS.IniFile
        GetPrivateProfileString Key, Data, "", ReturnS, 256, sIniFileName
        tempStr = Left(ReturnS, InStr(ReturnS, Chr(0)) - 1)
        GetIni = tempStr
    End Function'执行指定的程序
    sub stst()
        dim Prog$
        prog=getini("程序组","程序","c:\test.ini")
        '判断是否由##括起来,如果是的话就执行
        if left(prog,1)="#" and right(prog,1)="#" then
            prog=mid(prog)
            prog=left(prog,len(prog)-1)
            shell(prog)
        endif
    end sub
      

  3.   

    Public ADO_Cnn          As New ADODB.Connection
    Public ADO_Cmm          As New ADODB.Command
    Public ADO_Rs           As New ADODB.Recordset
    Public str              As String
    Public ComputerList     As Collection
    Public MessageList      As Collection
    Public G_sysdate        As String     '数据库系统时间
    Dim ErrADO              As Error
    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 Function Connect()
        On Error GoTo err_txt:
        Connect = False
        Dim ServerName              As String
        Dim DataBaseName            As String
        Dim MoneyDate               As String
        Dim returni                 As Long
        Dim SQLError                As Boolean
        Dim SQLErrorNumber          As Long
        Dim SQLErrorDescription     As String
        Dim SQLErrorState           As Long
        Dim SQLErrorSource          As String
        Dim SQLNativeError          As String
        Dim AppPath                 As String
        
        ServerName = Space(20)
        DataBaseName = Space(30)
        MoneyDate = Space(2)
        AppPath = App.Path
        
     returni = GetPrivateProfileString("SERVER", "servername", "", ServerName, 20, AppPath & "\dblinkw.ini")
     returni = GetPrivateProfileString("DATABASE", "databasename", "", DataBaseName, 30, AppPath & "\dblinkw.ini")
     returni = GetPrivateProfileString("DATE", "date", "", MoneyDate, 16, AppPath & "\dblinkw.ini") DataBaseName = Mid(Trim(DataBaseName), 1, Len(Trim(DataBaseName)) - 1)
     ServerName = Mid(Trim(ServerName), 1, Len(Trim(ServerName)) - 1)
     MoneyDate = Mid(Trim(MoneyDate), 1, Len(Trim(MoneyDate)) - 1)
    On Error GoTo ErrConn
      str = "Provider=SQLOleDB;Data Source=" & ServerName & _
                              ";Initial Catalog=" & _
                                DataBaseName & _
                                ";User Id=sa;Password=;"
      Set ADO_Cnn = New ADODB.Connection
      With ADO_Cnn
         .ConnectionString = str
         .Open
      End With
    Connect = True
    Exit Function
    ErrConn:
        '访问数据库出错时的记录
        For Each ErrADO In M_Conn.Errors
            SQLError = True
            SQLErrorNumber = ErrADO.number
            SQLErrorDescription = ErrADO.Description
            SQLErrorState = ErrADO.SQLState
            SQLErrorSource = ErrADO.Source
            SQLNativeError = ErrADO.NativeError
            Exit For
        Next
        MsgBox Err.number & Err.Description
        Exit Function
    err_txt:
        If Err.number = -2147467259 Then
            MsgBox "无法从服务器取得数据!", 48, "信息提示窗口"
            Exit Function
        End If
    End Function
      

  4.   

    还要对数据库进行操作吗?太难了啊!
    to:: zjcxc(邹建) 
    Function GetIni(ByVal Key$, ByVal Data$ = "",ByVal sIniFileName, Optional ByVal DefaltValue$) As String这句怎么理解啊?缺少分隔符吗?
      

  5.   

    Windows API函数,并在其中封装自定义的读取、写入INI的函数:
      
      Option Explicit
      
      '读写INI的API函數
      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
      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
      
      '自定义写入INI函數
      Public Function WriteIni(ByVal section As String, ByVal key As String, ByVal value As String) As Boolean
      Dim x As Long, Buff As String * 128, I As Integer
      Buff = value + Chr(0)
      x = WritePrivateProfileString(section, key, Buff, App.Path + "\MenuSetting.ini")
      WriteIni = x
      End Function
      
      '自定义读取INI函數
      Public Function ReadIni(ByVal section As String, ByVal key As String) As String
      Dim x As Long, Buff As String * 128, I As Integer
      x = GetPrivateProfileString(section, key, "", Buff, 128, App.Path + "\MenuSetting.ini")
      I = InStr(Buff, Chr(0))
      ReadIni = Trim(Left(Buff, I - 1))
      End Function
      主窗体代码:
      
      Option Explicit
      '声明用于判断写入INI中的FileName(n)中的n变量
      Dim I As String '为了能添在FileName串的后面,声明为String
      
      Private Sub Form_Load()
      I = 0 '初值
      Text1.Left = 0
      Text1.Top = 0
      Text1 = ""
      Text1.FontSize = 12
      Me.Caption = "txtEditor"
      Me.Width = 8000
      Me.Height = 6000
      AddMenu '添加动态菜单
      End Sub
      
      Private Sub Form_Resize() '这个没什么可说,为了使例程完整而已
      Text1.Width = Me.ScaleWidth
      Text1.Height = Me.ScaleHeight
      End Sub
      
      Private Sub mnuExit_Click()
      End '退出
      End Sub
      
      '打开文件
      Private Sub mnuOpen_Click()
      Dim sF As String
      CommonDialog1.Filter = "文档文件(*.txt)|*.txt|所有文件(*.*)|*.*"
      CommonDialog1.ShowOpen
      Open CommonDialog1.FileName For Input As #1
      Text1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)
      Close #1
      If I > = 3 Then I = 0 '如大于等于3则返回原值
      I = I + 1
      sF = "FileName" + I
      '打开后写进INI文件
      CommonDialog1.FileName = WriteIni("Open", sF, CommonDialog1.FileName)
      AddMenu '立即添加使动态菜单生效
      End Sub
      
      '添加菜单
      Private Sub AddMenu()
      Dim fN1 As String, fN2 As String, fN3 As String
      '從INI文件中读取数据
      fN1 = ReadIni("Open", "FileName1")
      fN2 = ReadIni("Open", "FilEName2")
      fN3 = ReadIni("Open", "FileName3")
      '如数据存在则令动态菜单可见并给其Caption属性赋值
      If fN3 < >  "" Then mnuSep02.Visible = True: mnuAdd(1).Visible = True: mnuAdd(1).Caption = fN1
      If fN2 < >  "" Then mnuSep02.Visible = True: mnuAdd(2).Visible = True: mnuAdd(2).Caption = fN2
      If fN1 < >  "" Then mnuSep02.Visible = True: mnuAdd(3).Visible = True: mnuAdd(3).Caption = fN3
      End Sub
      
      

  6.   

    Option Explicit'INI文件读取操作APIDeclare Function WritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationname As String, ByVal _
    lpKeyName As Any, ByVal lsString As Any, _
    ByVal lplFilename As String) As LongDeclare Function GetPrivateProfileString Lib _
    "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationname As String, ByVal _
    lpKeyName As String, ByVal lpDefault As _
    String, ByVal lpReturnedString As String, _
    ByVal nSize As Long, ByVal lpFileName As _
    String) As LongPublic Function GetIniStr(ByVal AppName As String, ByVal In_Key As String, ByVal sFileName As String) As String
    '*******************************************
    '读ini文件,不固定节点,in_key为读取的主键
    '针对字符串值,空值表示出错
    '*******************************************
        On Error GoTo GetIniStrErr
        If VBA.Trim(In_Key) = "" Then
           GoTo GetIniStrErr
        End If
        Dim GetStr As String
        GetStr = VBA.String(128, 0)
         GetPrivateProfileString AppName, In_Key, "", GetStr, 256, sFileName
          GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
        If GetStr = "" Then
           GoTo GetIniStrErr
        Else
           GetIniStr = GetStr
           GetStr = ""
        End If
        Exit Function
        
    GetIniStrErr:
           Err.Clear
           GetIniStr = ""
           GetStr = ""
    End Function
    Public Function WriteIniStr(ByVal AppName As String, ByVal In_Key As String, ByVal In_Data As String, ByVal sFileName As String) As Boolean
    '*******************************************
    '写ini文件,不固定节点,in_key为写入的主键
    '针对字符串值,False表示出错
    '*******************************************
    On Error GoTo WriteIniStrErr
        WriteIniStr = True
        If VBA.Trim(In_Data) = "" Or VBA.Trim(In_Key) = "" Or VBA.Trim(AppName) = "" Then
           GoTo WriteIniStrErr
        Else
         WritePrivateProfileString AppName, In_Key, In_Data, sFileName
        End If
        Exit Function
        
    WriteIniStrErr:
           Err.Clear
           WriteIniStr = False
    End Function
      

  7.   

    wxy_xiaoyu(☆然也☆╭∩╮(︶︿︶)╭∩╮) 
    在vb中读写INI文件
    http://www.easthot.net/article_read.asp?id=40