Bueno gente , postee hace muy poco mi duda sobre como hacer para que de un exe poniendo los datos en variables se impriman en el otro codigo (server) osea un edit server como hizo cobain, pero como estoy empezando estoy con algunos problemas
se trata de un form con tres textbox un command para que el archivo pruebas.exe cambie sus valores a otro tres text.
y los mas cómica no es eso sino que cuando llegan los datos el primer text llega un extraño MZ :o y los otros dos en blanco, la verdad ni idea.
buen aca el code del primer form:
Private Sub Command1_Click()
Open "C:\prueba.exe" For Binary As #1
Seek (1), LOF(1) + 1
Put #1, , a
Put #1, , b
Put #1, , c
Close #1
End Sub
Private Sub Form_Load()
Dim a As String * 25
Dim b As String * 25
Dim c As String * 25
a = Text1.Text
b = Text2.Text
c = Text3.Text
End Sub
muy simple jajaj
y ahora el prueba.exe
Private Sub Form_Load()
Dim a As String * 25
Dim b As String * 25
Dim c As String * 25
Dim d As String * 25
Dim ap As String
Dim bp As String
Dim cp As String
Open "C:\prueba.exe" For Binary As #1
Get #1, , a
Get #1, , b
Get #1, , c
Seek (1), LOF(1) - 74
Close #1
ap = Trim(a)
bp = Trim(b)
cp = Trim(c)
Text1.Text = ap
Text2.Text = bp
Text3.Text = cp
End Sub
tengan en cuenta que para mi es esto nuevo, igualmente busque bastante, pero postee la duda antes y no se no contestaron mucho.
gracias (post 100 ;D)
Cita de: fede_cp en 8 Julio 2009, 03:22 AM
... llega un extraño MZ :o ...
sabes que pasa, eso es la cabecera de los archivos ejecutables. si estas obteniendo eso es que estas leyendo la primera parte del archivo, y no la ultima.
proba con For Binary Access Read Write, asi funciona el LOF
saludos.
No funciona con For Binary Access Read Write As, debe ser algo muy bobo seguro ejje
adios
Cita de: fede_cp en 8 Julio 2009, 04:03 AM
No funciona con For Binary Access Read Write As, debe ser algo muy bobo seguro ejje
adios
no va el
Read es..
Open App.Path & "\programatonto.exe" For Binary Access Write As #1
saludos.
Bueno probe con For Binary Access Write As #1 en los dos forms despues probe en uno For Binary Access read As #1 y en el otro For Binary Access Write As #1 y despues probe en los dos For Binary Access read As #1
de la forma de los dos For Binary Access Write As #1 me dice permission dennied en la linea Get #1, , a
me esta dando dolor de cabeza y no me quiero imaginar poniendolo en el troyano :(
adios y gracias por la paciencia
Cita de: fede_cp en 8 Julio 2009, 04:21 AM
Bueno probe con For Binary Access Write As #1 en los dos forms despues probe en uno For Binary Access read As #1 y en el otro For Binary Access Write As #1 y despues probe en los dos For Binary Access read As #1
de la forma de los dos For Binary Access Write As #1 me dice permission dennied en la linea Get #1, , a
me esta dando dolor de cabeza y no me quiero imaginar poniendolo en el troyano :(
adios y gracias por la paciencia
digo, a mi tambien me causo dolores de pinga esto.
podes usar la clase de cobein... o ver por lo menos como lee los datos. (usa una PropBag)
saludos
Dim NFile As Integer, Datos As String
NFile = FreeFile
Open SrcFile For Binary As NFile
Get NFile, LOF(NFile) - 100, Datos ' Notese que aca se cogen la X cantidad de Caracteres al final del archivo.
Close NFile
I = 1
a = Mid(Datos, I, I + 25): I = I + 25
b = Mid(Datos, I, I + 25): I = I + 25
c = Mid(Datos, I, I + 25): I = I + 25
d = Mid(Datos, I, I + 25): I = I + 25
MsgBox a
MsgBox b
MsgBox c
MsgBox d
blackzero, gracias por la ayuda pero los msgbox salen "en blanco", la verdad no se porque a mi no me funcionaaa, es mas segui un tutorial de por ahi al par de la letra :-[ ahora si 100 posts
adios y gracias
ayuda por favor, intente las cosas que postearon ym as y no funca nada :-\
saludos
Cita de: fede_cp en 9 Julio 2009, 02:56 AM
ayuda por favor, intente las cosas que postearon ym as y no funca nada :-\
saludos
Perdona el codigo anterior no funciona almenos que la llenes con Espacion con Space()
Option Explicit
Sub Main()
Dim Archivo As String
Archivo = App.Path & "\" & App.EXEName & ".exe"
If MsgBox("Escribir=>(Si) / Leer=>(No)", vbApplicationModal + vbYesNo, "Selecciona la opción deseada") = vbYes Then
If EscribirDatos(Archivo) Then MsgBox "Escrito en archivo con exito"
Else
MsgBox LeerConfig(Archivo)
End If
End Sub
Function LeerConfig(Archivo As String) As String
On Error GoTo e:
Dim NFile As Integer
Dim DatosServer As String
Dim ByteI As Long
NFile = FreeFile
Open Archivo For Binary As NFile
'Primero Leemos la longitud de los Datos de Configuración
ByteI = Val(LOF(NFile)) - 4 'El numero 4 es segun se espesifique en Format, es decir la longitud del texto predeterminado en Format()
DatosServer = Space(4) 'Hay que redimencionar la variable para obtener la longitud de configuración.¡!
Get NFile, ByteI + 1, DatosServer
ByteI = Val(LOF(NFile)) - 4 - Val(DatosServer)
DatosServer = Space(Val(DatosServer)) ' Redimencionamos para obtener ahora el Rango deseado
Get NFile, ByteI + 1, DatosServer 'Lo obtenemos
LeerConfig = DatosServer
Close NFile
Exit Function
e:
LeerConfig = "Error:" & Err.Description
Err.Clear
End Function
Function EscribirDatos(Archivo As String) As Boolean
On Error GoTo e:
Dim Datas As String
Dim NFile As Integer
NFile = FreeFile
Datas = InputBox("Datos Formato---> IP:Puerto:TiempoReconección", "Configurador", "")
Datas = Datas + Format(Len(Datas), "000#") ' Segun sea este formato abajo se sustituye el numero 4 por otro valor segun la longitud.
Open Archivo For Binary As NFile
Seek (NFile), LOF(NFile) + 1 'Escribirmos al final del archivo
Put NFile, , Datas
Close NFile
EscribirDatos = True
Exit Function
e:
EscribirDatos = False
Err.Clear
End Function