Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - z3nth10n

#1311
Pues me precisa hacer doble post, si lo quieres unir hallá tu... :rolleyes:




Pos bueno aquí os traigo un updater que he hecho en 3 mins. :laugh:

Código (vbnet) [Seleccionar]
'Updater creado por Ikillnukes
' Ejemplos: Updater.Comprobar("https://dl.dropboxusercontent.com/s/2iin21gf8g629j9/upt.txt?dl=1", ".\Temp\", "1")
'La url puede ser de cualquier tipo yo recomiendo que uséis Dropbox, puesto que es directo y la url no sufre cambios.
'El directorio puede ser cualquier sitio
'El texto es la cadena que se va a comprobar, en caso de que no sea la misma que la del texto descargado previamente en Updatear, se va a llevar a acabo la funcion Updatear

Imports System.Net
Imports System.IO
Imports System.Diagnostics

Public Class Updater

Public Shared Sub Comprobar(ByVal url As String, ByVal directorio As String, ByVal texto As String)
       Dim patha As String = directorio & "upt.txt"
       Dim patha2 As String = directorio & "Update.zip"
       Dim patha3 As String = directorio & "upt.exe"

       If File.Exists(patha) Then
           File.Delete(patha)
       End If

       If File.Exists(patha2) Then
           File.Delete(patha2)
       End If

       If File.Exists(patha3) Then
           File.Delete(patha3)
       End If

       If Not File.Exists(patha) Then
           My.Computer.Network.DownloadFile(
       url,
       patha)
       End If

       If File.Exists(patha) Then

           Dim lines As String() = File.ReadAllLines(patha)

           If Not lines(0) = texto Then
               If MsgBox("¡Atención! Su aplicación está desactualizada." & vbCrLf & "Pulse ""Sí"" para continuar con la instalación. O ""No"" para descartar cambios.", MsgBoxStyle.YesNo, "¡Atención! Su app está desactualizada...") = MsgBoxResult.Yes Then
                   My.Computer.Network.DownloadFile(
           lines(1),
           patha2)
                   Extraer.Extraer(patha2, directorio)
                   Dim psi As New ProcessStartInfo()
                   psi.UseShellExecute = True
                   psi.FileName = patha3
                   Process.Start(psi)
                   Application.Exit()
               End If
           End If

       End If
   End Sub

End Class


Bueno, pues aquí dejo para que se compruebe cada X secs la app si está a la última:

Código (vbnet) [Seleccionar]
'Casi todas las cosas que hay aquí son conocimientos adquiridos gracias a Elektro, GRACIAS TÍO :D

Dim url As String = "https://dl.dropboxusercontent.com/s/2iin21gf8g629j9/upt.txt?dl=1" 'Esta es la Url de donde va a comprobarse todo
   Dim texto As String = INI_Manager.Load_Value(".\Test.ini", "AppVer") 'Aquí está la cadena de texto que se chekea

   Sub Updatear() 'Función de updatear, me estoy pasando un poco con los comentarios no? xD
       Updater.Comprobar(url, ".\Temp\", texto)
   End Sub

   Dim WithEvents temer As New System.Windows.Forms.Timer With {.Interval = 15000, .Enabled = True} 'Aquí se define el Timer y sus properties dinámicamente, cortesía de Elektro, EDITADO :)

   Private Sub Temer_Start(sender As Object, e As EventArgs) Handles temer.Tick
       Updatear() 'Aquí se chekea cada 15 secs esa función
   End Sub


Por último, como deberíais poner el archivo de texto, para que se compruebe correctamente todo:

Citar1
https://dl.dropboxusercontent.com/s/z8tzsxlyk5z4gdp/Pack%20de%20mods%20Falso.zip?dl=1

Explicación:

Citar1 #Es la String a comprobar#
https://dl.dropboxusercontent.com/s/z8tzsxlyk5z4gdp/Pack%20de%20mods%20Falso.zip?dl=1 #Es el link que se va a descargar en caso de Update, es decir que aquí debería ir la app con la Update#

Bueno, pues para la próxima versión, le voy a poner un Download Async para que cuando se descargue la Update se pueda ver en un Progress Bar para ver el progreso de la descarga.

Por si no fuera poco, para superarme, voy a hacer una mini-app, para subir paquetes de Updates de las apps que hagáis con DropNet, para que solo tengáis que darle a un botón y vuestros usuarios estén a la última.

Un saludo.
Que os parece?
PD: Tengo una duda... El "temer" sigue activado en los otros forms? Es que recuerdo que tuve un conflicto con un Timer en otro Form y era por que no lo pasaba




Como habréis visto, en un comentario llamo a una función llamada Extraer

aquí os dejo el Snippet:

Código (vbnet) [Seleccionar]
'Extractor sacado de por ahí y adaptado por mí
'PD: Solo funciona con .Zips, creo xD
' Ejemplo: Extraer.Extraer("File.zip", ".\Directorio A Extraer\SubDirectorio")

Imports Ionic.Zip

Public Class Extraer

   Public Shared Sub Extraer(ByVal ZipAExtraer As String, ByVal DirectorioExtraccion As String)
       Try

           Using zip1 As ZipFile = ZipFile.Read(ZipAExtraer)
               Dim e As ZipEntry
               For Each e In zip1
                   e.Extract(DirectorioExtraccion, ExtractExistingFileAction.OverwriteSilently)
               Next
           End Using

       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub

End Class


Por sí queréis comprimir:

Código (vbnet) [Seleccionar]
'Compresor sacado de por ahí y adaptado por mí
' Ejemplo: Comprimir.Comprimir(".\Directorio A Comprimir\SubDirectorio", "File Compreso.zip")

Imports Ionic.Zip

Public Class Comprimir

   Public Shared Sub Comprimir(ByVal NombreDirectorio, ByVal NombreGuardar)
       Using zip As ZipFile = New ZipFile()
           zip.AddDirectory(NombreDirectorio)
           zip.Save(NombreGuardar)
       End Using
   End Sub

End Class


Puede que próximamente puede que haga uno para que se pueda comprimir archivo por archivo, aunque va a ser bastante trabajo.... :-\

PD: Se necesita la librería de Ionic.Zip

Citar... solamente necesitaremos referenciar a nuestro proyecto la librería que está dentro de la siguiente ruta: "DotNetZipLib-DevKit-v1.9 –> zip-v1.9 –> Debug". La librería a referenciar es la "Ionic.Zip.dll"




Otro mini-snippet que he sacado de por ahí (para leer X línea de un Txt):

Código (vbnet) [Seleccionar]
Dim lines As String() = IO.File.ReadAllLines("archivo.txt")
'Ejemplo: lines(1) 'esto lee la línea 2 del archivo.txt
#1312
Pues a ver, ehm tuve encuenta lo que dijistes, pero por igual, cuando pulso el botón y me suelta un MsgBox con un numero entero y no un decimal :P

PD: Ya lo he comprobado, pero, nanai, no tiene nada que ver, :(

A ver si me he enterado bien, los pcbs hay que crearlos desde Shown? Pues es super raro, me sigue diciendo que están sin crearse.

Y lo más probable es que cuando demos con la clave me mates :xD
#1313
 ;D ;D ;D

xD XML es incompatible contigo xD

En fín, dentro de un poco posteo un Updater que estoy haciendo. :P
#1314
Y el code que le presté yo no servía? Por ahí leí como obtener el contenido de un atributo. En ese caso era innerHTML, y luego de como seleccionar dicha variable, con un GetElementByClassName :silbar:

No se hubiese podido hacer así, es que bueno, también el lo probó, pero no iba, ya no se si era, porque el code que le había pasado no obtenía el contenido de susodicho Class de Html, o porque realmente si lo obtenía pero no coincidía el nombre del Class.
#1315
Me parece que apuestas bien xD

Gracias a ese evento acabo de arreglar un bug de una excepción que llevaba tiempo ya jodiendo la marrana xD

Vale ahora salta esa excepción:

CitarSystem.NullReferenceException was unhandled
 HResult=-2147467261
 Message=Referencia a objeto no establecida como instancia de un objeto.
 Source=IkillLauncher
 StackTrace:
      en WindowsApplication1.frmModpacks.frmModpacks_Shown(Object sender, EventArgs e) en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmModpacks.vb:línea 186
      en System.Windows.Forms.Form.OnShown(EventArgs e)
      en System.Windows.Forms.Form.CallShownEvent()
      en System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
      en System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
      en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      en System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
      en System.Windows.Forms.Control.InvokeMarshaledCallbacks()
      en System.Windows.Forms.Control.WndProc(Message& m)
      en System.Windows.Forms.ScrollableControl.WndProc(Message& m)
      en System.Windows.Forms.ContainerControl.WndProc(Message& m)
      en System.Windows.Forms.Form.WndProc(Message& m)
      en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
      en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
      en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
      en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
      en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
      en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
      en System.Windows.Forms.Application.Run(ApplicationContext context)
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
      en WindowsApplication1.My.MyApplication.Main(String[] Args) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 81
      en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
      en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      en System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      en System.Threading.ThreadHelper.ThreadStart()
 InnerException:

Y no se porque no puedo declarar esto:

Código (vbnet) [Seleccionar]
Dim deel As Integer = Math.Abs(Int(Panel1.AutoScrollPosition.Y.ToString)) / altur + 2

fuera de un evento. Es super raro, si lo declaro fuera me salta esa excepción, y si lo declaro dentro me salta esta otra que acabo de pegar.  :-\




Gracias por perdonarmela, aunque bueno, yo ayudar más bien lo considero como dar el code hecho, ahora mismo, lo que estás haciendo es recomendarme que haga una cosa u otra, en mi opinión. :P
Así es como me gustaría resolver mis dudas (las más sencillas) ;)




Por cierto, linea 186:

Código (vbnet) [Seleccionar]
pcb_(deel).Width = 200

Creo que seguimos en las mismas, por lo menos ahora ese form si se me abre. :P
#1316
Perdona la ignorancia, cual es el evento shown? :xD
El que muestra el panel, o comorl? :rolleyes:
#1317
Syntax le haría falta uno de SoundCloud, porque no le damos una sorpresa entre los dos? :silbar:
#1319
Hacking / Re: Activar webcam
22 Junio 2013, 20:03 PM
Por ahí vi una app que se llamaba mosquito, que era un juego de tanques que si lo jugabas, la victima podía ser visto por el que lo infecto. :P
#1320
Ya añadí un MsgBox y va perfecto. Ehm ya se que hay 2 widths, uno es el que cambia y el otro es el que añade el width por default a cada uno de los pics. Voy a probar borrando ese width y activando el otro. :P




Ahora he borrado uno de los widths y antes de mostrar el code me suelta esta excepción:

CitarSystem.InvalidOperationException was unhandled
 HResult=-2146233079
 Message=Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: Referencia a objeto no establecida como instancia de un objeto.
 Source=IkillLauncher
 StackTrace:
      en WindowsApplication1.My.MyProject.MyForms.Create__Instance__[T](T Instance) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 190
      en WindowsApplication1.My.MyProject.MyForms.get_frmModpacks()
      en WindowsApplication1.frmMinecraft.Label2_Click(Object sender, EventArgs e) en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmMinecraft.vb:línea 134
      en System.Windows.Forms.Control.OnClick(EventArgs e)
      en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
      en System.Windows.Forms.Control.WndProc(Message& m)
      en System.Windows.Forms.Label.WndProc(Message& m)
      en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
      en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
      en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      en System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
      en System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
      en System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
      en System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
      en System.Windows.Forms.Application.Run(ApplicationContext context)
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      en Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
      en WindowsApplication1.My.MyApplication.Main(String[] Args) en 17d14f5c-a337-4978-8281-53493378c1071.vb:línea 81
      en System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
      en System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
      en Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      en System.Threading.ThreadHelper.ThreadStart_Context(Object state)
      en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      en System.Threading.ThreadHelper.ThreadStart()
 InnerException: System.NullReferenceException
      HResult=-2147467261
      Message=Referencia a objeto no establecida como instancia de un objeto.
      Source=IkillLauncher
      StackTrace:
           en WindowsApplication1.frmModpacks..ctor() en C:\Users\Alvaro\Documents\IkillLauncher\IkillLauncher\frmModpacks.vb:línea 44
      InnerException:

Si lo vuelvo a poner siempre toma el primero y si bajo el scroll no cambia el width de ninguna imagen. :-\

La linea 44 es justamente esta:

Código (vbnet) [Seleccionar]
Dim deel As Integer = Math.Abs(Int(Panel1.AutoScrollPosition.Y.ToString)) / altur

Lo mismo pasa si pongo:

Código (vbnet) [Seleccionar]
pcb_(3).Width = 200

Por ejemplo :/