Para facilitar las cosas os paso el código que uso yo para guardar y leer de ficheros ini.
Hay en las faqs algo sobre esto pero no queda demasiado claro.    
Código vb:
Ver original- #If Win32 Then 
-     'Declaraciones para 32 bits 
-     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 
-     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 
- #Else 
-     'Declaraciones para 16 bits 
-     Private Declare Function GetPrivateProfileString Lib "Kernel" _ 
-         (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _ 
-          ByVal lpDefault As String, ByVal lpReturnedString As String, _ 
-          ByVal nSize As Integer, ByVal lpFileName As String) As Integer 
-     Private Declare Function WritePrivateProfileString Lib "Kernel" _ 
-         (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _ 
-          ByVal lpString As Any, ByVal lplFileName As String) As Integer 
- #End If 
-   
- Sub GuardarIni(ByVal FicheroINI As String, ByVal Seccion As String, _ 
- ByVal Clave As String, ByVal Valor As String) 
-   On Local Error GoTo ErrorGuardarIni 
-   WritePrivateProfileString Seccion, Clave, Valor, FicheroINI 
-   Exit Sub 
- ErrorGuardarIni: 
-   MsgBox Err.Number & ". " & Err.Description, vbCritical 
-   Err.Clear 
- End Sub 
-   
- '------------------------------------ 
-   
- Function LeerIni(ByVal FicheroINI As String, ByVal Seccion As String, _ 
- ByVal Clave As String, Optional ByVal ValorDefault As String) As String 
-   Dim lpString As String 
-   Dim LTmp As Long 
-   Dim sRetVal As String 
-   On Local Error GoTo ErrorLeerIni 
-   If IsMissing(ValorDefault) Then 
-     lpString = "" 
-   Else 
-     lpString = ValorDefault 
-   End If 
-   sRetVal = String$(255, 0) 
-   LTmp = GetPrivateProfileString(Seccion, Clave, _ 
-   lpString, sRetVal, Len(sRetVal), FicheroINI) 
-   If LTmp = 0 Then 
-     LeerIni = lpString 
-   Else 
-     LeerIni = Left(sRetVal, LTmp) 
-   End If 
-   Exit Function 
- ErrorLeerIni: 
-   MsgBox Err.Number & ". " & Err.Description, vbCritical 
-   Err.Clear 
- End Function 
Ejemplo para guardar y leer el alto y ancho del form1:    
Código vb:
Ver original- '               fichero       seccion    clave   valor a guardar 
-   GuardarIni "C:\Config.ini", "Ventanas", "F1Alto", Form1.Height 
-   GuardarIni "C:\Config.ini", "Ventanas", "F1Ancho", Form1.Width 
En el fichero ini se guardaría:    
El fichero ini se crea automáticamente al guardar un dato en el. 
Para devolver su tamaño a la ventana pondríamos:    
Código vb:
Ver original- '                                fichero     seccion    clave   valor por defecto 
-   Form1.Height = LeerIni ("C:\Config.ini", "Ventanas", "F1Alto", Form1.Height) 
-   Form1.Width = LeerIni ("C:\Config.ini", "Ventanas", "F1Ancho", Form1.Width) 
Como veis, pongo como valores por defecto el actual ancho y alto de la ventana, de modo que si no existen valores guardados en el fichero .INI, dejamos la ventana con su tamaño original. 
Como muchos sabrán, todos los valores se pueden poner como variables o textuamente como he hecho yo, además de que se pueden guardar textos, no solo valores numéricos:
Ejm:    
Código vb:
Ver original- Fichero = App.Path & "\Config.ini" 
-   Seccion = "Ventanas" 
-   Clave = "F1Titulo" 
-   Valor = Form1.Caption 
-   GuardarIni Fichero, Seccion, Clave, Valor 
Espero que esto anime a muchos a usar este tipo de ficheros tan cómodos. Una vez que tienes las 2 funciones, guardar y leer datos es muy simple, y al ser un fichero de texto se puede editar fácilmente con el bloc de notas de windows. 
Saludos