elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 50
61  Programación / .NET (C#, VB.NET, ASP) / Re: Mi form se cuelga al iniciar un thread... en: 29 Noviembre 2012, 22:42 pm
Hay casos en los cuales no funciona, siempre es de mejor practica usar delegados, aunque si es algo muy sencillo se puede usar pero igual no se recomienda.
62  Programación / .NET (C#, VB.NET, ASP) / Re: [¿?] La IP me sale en un formato que no entiendo. en: 28 Noviembre 2012, 15:44 pm
Hay que filtrar el AddressList para hallar la IPv4 pública ;)

Aquí te dejo el código:

Código
  1.    Public Function GetPublicIP() As IPAddress
  2.  
  3.        GetPublicIP = Nothing
  4.  
  5.        Dim LocalHost As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName)
  6.  
  7.        For Each Address In LocalHost.AddressList
  8.            'Si no es IPv6'
  9.            If Not (Address.IsIPv6SiteLocal Or Address.IsIPv6Multicast Or Address.IsIPv6LinkLocal) Then
  10.                'Si es de la familia InterNetwork'
  11.                If Address.AddressFamily = Sockets.AddressFamily.InterNetwork Then
  12.                    'Y no es privada'
  13.                    If Not IsPrivateIP(Address) Then
  14.                        Return Address
  15.                    End If
  16.                End If
  17.            End If
  18.        Next
  19.  
  20.    End Function
  21.  
  22.    Public Function IsPrivateIP(ByVal IP As IPAddress) As Boolean
  23.  
  24.        Dim _0, _1 As Byte
  25.  
  26.        'Si el primer byte es 10 es privada'
  27.        'Si el primer byte es 172 y el segundo está entre 16-31 es privada'
  28.        'Si el segundo byte es 168 es privada'
  29.        'De lo contrario es pública'
  30.  
  31.        _0 = IP.GetAddressBytes(0)
  32.        _1 = IP.GetAddressBytes(1)
  33.  
  34.        Select Case _0
  35.            Case 10
  36.                Return True
  37.            Case 172
  38.                If _1 >= 16 And _1 <= 31 Then Return True
  39.            Case 192
  40.                If _1 = 168 Then Return True
  41.        End Select
  42.  
  43.        Return False
  44.  
  45.    End Function
63  Programación / .NET (C#, VB.NET, ASP) / Re: (SOLUCIONADO) Cambiar el color de una línea en un richtextbox en: 27 Noviembre 2012, 14:07 pm
Has lo que dice seba123neo, el For solo dará tantas vueltas como lineas tenga el RichTextBox, será más rápido que el código que tienes actualmente.
64  Programación / .NET (C#, VB.NET, ASP) / Re: Cambiar el color de una línea en un richtextbox en: 27 Noviembre 2012, 12:48 pm
Por supuesto el RichTextBox, existe precisamente para esas cosas:

Código
  1.       RichTextBox1.Select(INDEX, LONGITUD)
  2.  
  3.        RichTextBox1.SelectionColor = COLOR
  4.  
  5.        RichTextBox1.Select(0, 0)
65  Programación / .NET (C#, VB.NET, ASP) / Re: Generar clase en VB.net que permita calcular un punto a partir coordenadas en: 27 Noviembre 2012, 04:52 am
Guardar en donde?, Tienes que seguir alguna formula de un triangulo en especifico o se vale cualquier método :laugh:? Se te olvido colocar el código ;)
66  Programación / .NET (C#, VB.NET, ASP) / Re: Se puede mejorar este FOR? en: 26 Noviembre 2012, 16:22 pm
Usa las Apis de Windows FindFile y FindNextFile trabajan mucho más rápido cuando son miles de archivos. También te recomiendo hacer el trabajo desde un BackgroundWorker y usar el evento ProgressChanged para modificar cualquier aspecto visual como una barra de progreso o un Label si lo tienes.

Hay 2 maneras de saber si un archivo corresponde a un tipo, primero lo que haces verificar de una lista de extensiones, así lo hice en una aplicación y tengo está lista:

Código
  1.           Public Video As String() = New String() {".ts", ".tts", ".m4v", ".mp4", ".mp4v", ".m2t", ".m2ts", ".mts", _
  2.                              ".mov", ".avi", ".m1v", ".m2v", ".mod", ".mp2v", ".mpa", ".mpe", _
  3.                              ".mpeg", ".mpg", ".mpv2", ".3g2", ".3gp2", ".3gp", ".3gpp", ".asf", _
  4.                              ".wmv", ".flv", ".ogg", ".mkv", ".amc", ".mpeg1", ".mpeg2", ".mpeg4", _
  5.                              ".mqv", ".qt", ".qtl", ".wmx", ".wmz"}

La otra es verificar las cabeceras de los archivos, pero eso es más incomodo XD
67  Programación / .NET (C#, VB.NET, ASP) / Re: Mostrar el output de la CMD en: 25 Noviembre 2012, 22:07 pm
Los bucles dejan la UI colgada, puedes usar Application.DoEvents dentro del bucle o un Me.Refresh antes de comenzar el bucle, no es la forma correcta pero para este caso esta bien. Environment.NewLine, representa el carácter de nueva linea.

Esos comandos de consola se puede llevar fácilmente a código con ayuda de IO.File, claro es solo una aclaración porque no se si necesitas a juro hacerlo en consola ;)
68  Programación / .NET (C#, VB.NET, ASP) / Re: [Encuesta] ¿ Que versión de Visual Studio usas ? en: 24 Noviembre 2012, 22:20 pm
Yo actualmente uso la 2012 pero prefiero continuar la 2008 mientras me acostumbro a la 2012 ya van 4 años de diferencia 2 versiones es mejor irse actualizando, los cambios siempre cuestan pero bueno :xD

Realmente lo que me importa del 2012 no es tanto el UI, sino son algunos detalles que le dieron: La herramienta que busca posibles optimizaciones para el código, agregar recursos y luego poder modificarlos y reemplazarlos con el proyecto abierto (antes el proceso te los bloqueaba), poder cambiar el nombre del proyecto, la versión del .Net Framework se puede cambiar con mayor facilidad ahora, el completador en el código ahora posee iconos muy diferentes para métodos, propiedades y funciones lo que nos ayuda a ubicar mas rápidamente una opción de manera visual, la jerarquía de llamadas te permite listar en un método el orden en que el código llama a los elementos dentro de el (puede ser útil para hallar objetos no inicializados), puedes usar la herramienta de pruebas para compilar y ejecutar un método individualmente, muestra las relaciones entre If Then End If, While End While (para no confundirse entre las sentencias)...

Por ahora sigo viendo que más hay de nuevo...
69  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Generar un ejecutable con configuraciones personalizadas desde otro ejecutable? en: 24 Noviembre 2012, 21:21 pm
Puedes intentar agregar los datos al final del ejecutable, y que los últimos 4 Bytes sean un Int32 que de el tamaño de los mismo, pero no se hasta que punto esto pueda dañar el ensamblado por eso te recomiendo los Resources.

Aquí esta un ejemplo, en Debug no funciona, vaya a saber quien por que :xD

Código
  1. Module Module1
  2.  
  3.    Sub Main()
  4.  
  5.        'El File.Exists es solo es para que el generador y la prueba sean el mismo archivo'
  6.        'en tu proyecto obviamente una cosa es el generador y otra es el ejecutable'
  7.        'que se genera, esto como es un ejemplo están las dos cosas juntas.'
  8.        If Not IO.File.Exists("C:\ejemplo.exe") Then
  9.  
  10.            'Hacemos una copia de nosotros mismos'
  11.            IO.File.Copy(Process.GetCurrentProcess.MainModule.FileName, "C:\ejemplo.exe")
  12.  
  13.            Dim mensaje As String = "Este mensaje fue introducido al final del ensamblado..."
  14.            Dim tamaño As Integer = mensaje.Length
  15.  
  16.            Dim ejemplo As New IO.FileStream("C:\ejemplo.exe", IO.FileMode.Open, IO.FileAccess.Write)
  17.  
  18.            'Nos vamos al final del archivo'
  19.            ejemplo.Seek(0, IO.SeekOrigin.End)
  20.  
  21.            'Escribimos un margen de 8 bytes vacíos, para evitar errores'
  22.            ejemplo.Write(New Byte(8 - 1) {}, 0, 7)
  23.  
  24.            'Escribimos el mensaje'
  25.            ejemplo.Write(System.Text.Encoding.Default.GetBytes(mensaje), 0, tamaño)
  26.  
  27.            'Escribimos la longitud del mismo'
  28.            ejemplo.Write(BitConverter.GetBytes(tamaño), 0, 4)
  29.  
  30.            ejemplo.Flush()
  31.            ejemplo.Close()
  32.  
  33.            'Iniciamos el ejecutable con el mensaje'
  34.            Process.Start("C:\ejemplo.exe")
  35.  
  36.        Else
  37.  
  38.            'Abrimos el archivo de nuestro propio proceso'
  39.            Dim Ensamblado As New IO.FileStream(Process.GetCurrentProcess.MainModule.FileName, IO.FileMode.Open, IO.FileAccess.Read)
  40.  
  41.            'Nos ubicamos 4 posiciones hacia atras desde el final'
  42.            Ensamblado.Seek(-4, IO.SeekOrigin.End)
  43.  
  44.            Dim Buffer As Byte() = New Byte(4 - 1) {}
  45.  
  46.            Dim TamañoDatos As Integer = 0
  47.  
  48.            'Leemos los ultimos 4 bytes'
  49.            Ensamblado.Read(Buffer, 0, 4)
  50.  
  51.            'Estos 4 bytes corresponden al tamaño del mensaje, estan Int32'
  52.            TamañoDatos = BitConverter.ToInt32(Buffer, 0)
  53.  
  54.            'Redimensionamos el buffer para recibir los datos'
  55.            ReDim Buffer(TamañoDatos - 1)
  56.  
  57.            'Nos colocamos al inicio del mensaje, tomando en cuenta que contamos'
  58.            'de atras hacia adelante el tamaño del mensaje y los 4 bytes que ocupaba'
  59.            'el tamaño del mismo'
  60.            Ensamblado.Seek(-TamañoDatos - 4, IO.SeekOrigin.End)
  61.  
  62.            'Leemos el mensaje'
  63.            Ensamblado.Read(Buffer, 0, TamañoDatos)
  64.  
  65.            Ensamblado.Close()
  66.  
  67.            'Imprimimos el mensaje'
  68.            Console.WriteLine(String.Format("Este ensamblado contiene el siguiente mensaje: {0}", _
  69.                                            System.Text.Encoding.Default.GetString(Buffer)))
  70.  
  71.            Console.Read()
  72.  
  73.        End If
  74.  
  75.    End Sub
  76.  
  77. End Module
  78.  
70  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Cómo evitar el ingreso de caracter en variable entera? en: 24 Noviembre 2012, 21:09 pm
Estas ingresando la información por consola?, o por medio de algún control por ejemplo un Textbox?
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 50
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines