bueno pues como dice el titulo les pido su ayuda con un pequeño codigo para una aplicacion que estoy haciendo en VB6 , lo que necesito es un algo como un modulo o algo para poder guardar la configuracion de la aplicacion en un archivo .INI
como por ejemplo guardar la configuracion si se inicia o no con windows

bueno les dejo una imagen para que se den una idea jeje

ojala y me puedan ayudar Por favor!

PD.ya busque en google muchismo ,tambien en rescursosisualbasic y si encuentro ejemplos pero son para guardar solo el tamaño de la aplicacion,etc.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Imagen

♪♪ 2pac & Notorius B.I.G ♪♪
¿Por qué estoy luchando para vivir cuando estoy solo viven para luchar,
¿Por qué estoy tratando de ver cuando no hay nada a la vista,
¿Por qué estoy tratando de dar cuando nadie me da una oportunidad,
¿Por qué estoy muriendo para vivir cuando yo estoy viviendo para morir.♪♪
mm
para que se inicie con windows ya lo esta puesto el code pero lo que necesito es que como esta en la imagen ,si esta marcado el check o no se guarde en un archivo .INI (configuracion de la aplicacion)
y las demas opciones tambien.
gracias por responder!
saludos
Imagen

♪♪ 2pac & Notorius B.I.G ♪♪
¿Por qué estoy luchando para vivir cuando estoy solo viven para luchar,
¿Por qué estoy tratando de ver cuando no hay nada a la vista,
¿Por qué estoy tratando de dar cuando nadie me da una oportunidad,
¿Por qué estoy muriendo para vivir cuando yo estoy viviendo para morir.♪♪
Puedes crear una funcion o usar la de recursos visual basic , tratare de ayudarte lo mas que pueda por que hace tiempo hize un post preguntando lo mismo y solo hubo una respuesta muy complicada , bueno usare le modulo que esta en recursos visual basic

Option Explicit

Const APPLICATION As String = "MiPrograma"

Dim m_Left As Single
Dim m_Top As Single
Dim m_Width As Single
Dim m_Height As Single

Dim Path_Archivo_Ini As String

'Función api que recupera un valor-dato de un archivo Ini
Private Declare 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 Long

'Función api que Escribe un valor - dato en un archivo Ini
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As Long


'Lee un dato _
-----------------------------
'Recibe la ruta del archivo, la clave a leer y _
el valor por defecto en caso de que la Key no exista
Private Function Leer_Ini(Path_INI As String, Key As String, Default As Variant) As String

Dim bufer As String * 256
Dim Len_Value As Long

Len_Value = GetPrivateProfileString(APPLICATION, _
Key, _
Default, _
bufer, _
Len(bufer), _
Path_INI)

Leer_Ini = Left$(bufer, Len_Value)

End Function

'Escribe un dato en el INI _
-----------------------------
'Recibe la ruta del archivo, La clave a escribir y el valor a añadir en dicha clave

Private Function Grabar_Ini(Path_INI As String, Key As String, Valor As Variant) As String

WritePrivateProfileString APPLICATION, _
Key, _
Valor, _
Path_INI

End Function


Private Sub Form_Load()

'Path del fichero Ini
Path_Archivo_Ini = App.Path & "\config.ini"

' Lee las Key y Les envia el valor por defecto por si no existe
m_Left = Leer_Ini(Path_Archivo_Ini, "Left", 0)
m_Top = Leer_Ini(Path_Archivo_Ini, "Top", 0)
m_Width = Leer_Ini(Path_Archivo_Ini, "Width", 5000)
m_Height = Leer_Ini(Path_Archivo_Ini, "Height", 5000)

'Posiciona el formulario con los valores del archivo Ini
Move m_Left, m_Top, m_Width, m_Height

End Sub

Private Sub Form_Unload(Cancel As Integer)

'Escribe en el archivo Ini

'Posición del Form
Call Grabar_Ini(Path_Archivo_Ini, "Left", Me.Left)
Call Grabar_Ini(Path_Archivo_Ini, "Top", Me.Top)

'Tamaño del formulario
Call Grabar_Ini(Path_Archivo_Ini, "Width", Me.Width)
Call Grabar_Ini(Path_Archivo_Ini, "Height", Me.Height)

End Sub
dices que solo para guardar el widith y heigh cierto.. pero es un ejemplo, te mostrare como modificarlo

al inicial el formulario se encuentra esta linea

Código: Seleccionar todo

 m_Left = Leer_Ini(Path_Archivo_Ini, "Left", 0)
m_left = variable que contiene el left
leerini = funcion
(Path_Archivo_Ini, = ruta del archivo ini , por eso antes la variable path_archivo se declara como app.path & "\config.ini", tu puedes hacer lo mismo
"Left" = lee el contenido de la parte del .ini que tenga la clave "left"
0 = si no existe esa parte del ini la crea

ahora cuando el form se cierra, usa la propiedad unload y se encuentra esta linea
Call Grabar_Ini(Path_Archivo_Ini, "Left", Me.Left)
Grabar_Ini = la funcion para grabar datos al ini
Path_Archivo_Ini = variable que contiene la ruta del archivo ini, como dije puedes modificarla como quieras
"Left" = la key o clave que vas a meter para luego sacar el valor que contenga esa clave
Me.Left = este es el valor que obtendras al leer el ini, por ahora en el code anterior lo estas guardando para cuando sea abierto puedas leer el valor del left

ahora voy a ponerte el ejemplo de iniciar con windows...

Al iniciar form.. :

Código: Seleccionar todo

Dim VariableParaLeer as boolean ' declaramos la variable para luego saber si es falsa o verdadera

VariableParaLeer = Leer_Ini(app.path & "\Config.ini", "iniciar" 0)
if VariableParaLeer = true then ' si la variable = true entonces se guardo con el check tildeado
Iniciar_Con_Windows.value = 1 ' tildeamos el check
else
Iniciar_Con_Windows.value = 0 ' si no la ponemos desmarcada aunque pordefecto asi viene
end if

Al guardar form... :

Dim Variable as boolean ' variable que contendra el .value del check
if Iniciar_Con_Windows.value = 1 then ' si el check esta tildeado entonces ponemos la variable true
variable = true
else
variable = false ' si no no
end if

Call Grabar_Ini(app.path & "\Config.ini", "iniciar", Variable) ' grabamos la variable para despues leerla
Espero te haya servido
Yo estoy deacuerdo con sharki, nomas mete todo en un .ini y comparas linea a linea, por ejemplo:

Código: Seleccionar todo

Dim datos As String


Open "c:\salida.ini" For Binary As #1
  Put #1, , "dato 1" & vbCrLf
  Put #1, , "dato 2" & vbCrLf
Close #1

Open "c:\salida.ini" For Input As #1
  Line Input #1, datos
Close #1

If datos = "dato 1" Then
  MsgBox "datos tiene dato 1"
Else
  MsgBox "datos no tiene dato 1"
End If
en lo primero lo que hacemos es meter los datos yo puse datos 1 tu pondrias ahi por ejemplo:

iniciar con windows: si
etc etc

y en el form load usarias el otro para cargar el ini y leer las lineas asi no necesitas delimitador solo los saltos de linea entonces ahi en mi caso compara si la primera linea es igual a dato 1 en tu caso compararias si la linea 1 es igual a iniciar con windows: si entonces lo corres el programa si no pues no lo corres con windows

es otra alternativa xD aver si te sirve
//mHmm..
si muchisimas gracias me sirvieron demasiado ya lo resolvi gracias

gracias por responder mis dudas!
pd. sanlegas el ejemplo que me diste tu ya lo tenia planteado pero me resulto un poco complicado! jeje
de todas maneras muchas GRACIAS!
Imagen

♪♪ 2pac & Notorius B.I.G ♪♪
¿Por qué estoy luchando para vivir cuando estoy solo viven para luchar,
¿Por qué estoy tratando de ver cuando no hay nada a la vista,
¿Por qué estoy tratando de dar cuando nadie me da una oportunidad,
¿Por qué estoy muriendo para vivir cuando yo estoy viviendo para morir.♪♪
Responder

Volver a “VB/.NET”