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 - Keyen Night

#431
.NET (C#, VB.NET, ASP) / Error con Sub
24 Enero 2010, 19:23 PM
Tengo un programa que he estado haciendo y mejorando de un autologger de un juego online llamado Tibia, hoy se me ocurrio agregarle progressbar personalizadas pero a mi manera :xD con este sub que probe en un proyecto nuevo vacio que cree para solo probarlo:
Código (vbnet) [Seleccionar]
    Public Shared Sub LoadImage(ByVal Pic As PictureBox, ByVal Percent As Integer)
        Dim LoadedBar As New Bitmap(My.Resources.Bar, Pic.Width, Pic.Height)
        Dim Img As New Bitmap(Pic.Width, Pic.Height)

        Select Case Percent
            Case 100
                Pic.Image = LoadedBar
            Case 0
                Pic.Image = Nothing
            Case Else
                For X As Integer = 0 To (LoadedBar.Width * (Percent / 100) - 1)
                    For Y As Integer = 0 To (LoadedBar.Height - 1)
                        Img.SetPixel(X, Y, LoadedBar.GetPixel(X, Y))
                    Next
                Next
                Pic.Image = Img
        End Select

        Pic.Refresh()
        Img = Nothing
        LoadedBar = Nothing
    End Sub


Consiste en cargar un % de una imagen que obviamente es la barra de progreso completa en un picturebox esto da la sensación de una progressbar; la imagen está es los resources del programa como Bar.png en el proyecto vacio de prueba sirve perfectamente pero si lo pruebo en mi proyecto, se cierra el form desde donde llame el sub y da el siguiente error:
El valor no puede ser nulo. Nombre del parámetro: image
En la linea:
Código (vbnet) [Seleccionar]
Dim LoadedBar As New Bitmap(My.Resources.Bar, Pic.Width, Pic.Height)
Pero este error no da en el proyecto vacio de prueba, ya me tiene azul y no se que hacer :-(
#432
Tengo una idea que podría funcionar aunque lleva algo de matemática pero bueno los programadors somos matemáticos natos :xD

Recorre todos los pixel de cada imagen comparando su valor hex, por cada pixel diferente sumaras +1 si es igual no sumaras nada en una variable A que usaras como buffer en una variable B sumaras +1 cada vez que compares un pixel con otro si al final A es igual a cero entonces la igual es igual si A es diferente que cero entonces es diferente para calcular el porcentaje entonces debes dividir  A entre B y multiplicarlo por 100, mira el ejemplo:

Código (vbnet) [Seleccionar]
Public Class Form1

    Public Function GetPixels(ByVal I As Bitmap) As List(Of Integer)
        GetPixels = New List(Of Integer)
        Dim X As Integer = 0, Y As Integer = 0

        While X <> I.Width AndAlso Y <> I.Height
            GetPixels.Add(I.GetPixel(X, Y).ToArgb)
            X += 1
            Y += 1
        End While

    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim I1 As New Bitmap("C:\1.jpg")
        Dim I2 As New Bitmap("C:\2.jpg")

        Dim A As Long = 0
        Dim B As Long = 0

        For Each C As Integer In GetPixels(I1)
            For Each D As Integer In GetPixels(I2)
                If C <> D Then
                    A += 1
                End If
                B += 1
            Next
        Next

        MsgBox("Diferentes: " & A & _
               vbNewLine & "Análizados: " & B _
               & vbNewLine & "Porcentaje de Diferencia: " & Math.Round(A / B * 100, 2) & "%")

    End Sub
End Class
#433
Yo tengo este sub en vb.net siempre me ha funcionado
Código (vbnet) [Seleccionar]
   Public Sub SendMail(Byval mSmtp As String, _
                    Byval mPort As Integer, _
                   ByVal mFrom As String, _
                   ByVal mFromPassword As String, _
                   ByVal mTo() As String, _
                   ByVal mSubject As String, _
                   ByVal mBody As String, _
                   ByVal mAttachments() As String)
       Dim _
       WC As New System.Net.WebClient, _
       MyMailMessage As New MailMessage, _
       SMTPServer As New SmtpClient(mSmtp)

       MyMailMessage.IsBodyHtml = True

       MyMailMessage.From = New MailAddress(mFrom)

       For Each mSend As String In mTo
           MyMailMessage.To.Add(mSend)
       Next

       MyMailMessage.Subject = (mSubject)
       For Each mAtt As String In mAttachments
           If File.Exists(mAtt) Then
               MyMailMessage.Attachments.Add(New Attachment(mAtt))
           End If
       Next

       WC.Dispose()
       MyMailMessage.Body = (mBody)
       SMTPServer.Port = mPort
       SMTPServer.Credentials = New System.Net.NetworkCredential(mFrom, mFromPassword)
       SMTPServer.EnableSsl = True

       Try
           SMTPServer.Send(MyMailMessage)
       Catch : End Try


Solo deberás pasarlo a C#
#434
.NET (C#, VB.NET, ASP) / Re: Que diferencia?
18 Enero 2010, 02:46 AM
Entendido, Gracias ;D
#435
Otra pregunta uni mis iconos con IconFX el archivo de salida tiene extensión *.icl no es soportado por vb.net que yo sepa, hay una forma de incluir estos archivos en mi proyecto o existe algún otro programa que salga los iconos unidos en *.ico?
#436
.NET (C#, VB.NET, ASP) / Que diferencia?
18 Enero 2010, 01:26 AM
Tengo una pregunta que me intriga :xD que diferencia hay entre importar un api desde coredll que importarla desde kernel32 o user32 y poque coredll tiene funciones que tambien estan en kernel32 y en user32...
#437
Perfecta solución, Gracias!
#438
Tengo el siguiente problema el icono de mi aplicación a 32x32 se ve perfecto en el escritorio pero en una carpeta en vista mosaico se ve mal a menos de que este sea 48x48, habrá una forma de que se vea bien en el escritorio y tambien dentro de una carpeta en mosaico?, o será un error mio al hacer el icono?

Miren estás imagenes:

En el Escritorio:



En una Carpeta:



Quisas esto nisiquiera vaya aqui :xD pues perdon sino va aquí...
#439
Primero hay que tomar en cuenta que el nombre del foro es foro.elhacker.net creo que ya eso es suficiente para que no podemos quejarnos de los malwares que se escriban aqui, a menos de que seamos tan estupidos como para infectarnos entre nosotros mismos :¬¬
Bueno el code está bien pero habria una forma más limpia de hacerlo y está sería recorriendo todas las carpetas de archivos de programas y copiarnos en todas las subcarpetas, aunque infectariamos más de lo que queremos habriamos infectado todo con menos codigo, tambien puedes agregar el atributo System a los archivos además de Hidden...
#440
.NET (C#, VB.NET, ASP) / Re: Obtener Fecha
16 Enero 2010, 05:32 AM
Aunque los metodos antes mencionados son fiables, gracias por ayudarme, hice uno :xD en el cual tomo como hora de inicio del sistema el ultimo acceso a ntuser.dat en userprofile luego le sumo el retorno de la API GetTickCount y así obtengo la hora "real" del sistema y la comparo con la actual y bueno ya de hay sabemos que han hecho con el reloj, además que usar ntuser.dat me ayuda ya que no se puede editar ni acceder.