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 - Eleкtro

#6871
Aquí os dejo una versión mejorada y extendida de lo anterior, por si a alguien le sirve:

Código (vbnet) [Seleccionar]
' ***********************************************************************
' Author           : Elektro
' Last Modified On : 07-11-2014
' ***********************************************************************
' <copyright file="PixelUtil.vb" company="Elektro Studios">
'     Copyright (c) Elektro Studios. All rights reserved.
' </copyright>
' ***********************************************************************

#Region " Usage Examples "


' **************************************************
' Count the number of Pixels that contains the image
' **************************************************
'
'' Create a new bitmap.
'Dim bmp As Bitmap = Bitmap.FromFile("C:\DesktopScreenshot.bmp", False)
'
'' Instance a PixelUtil Class.
'Dim bmpPixelUtil As New PixelUtil(bmp)
'
'' Display the pixel count.
'MessageBox.Show(String.Format("Total amount of Pixels: {0}", CStr(bmpPixelUtil.PixelCount)))


' ************************************************
' Searchs for an specific pixel color in the image
' ************************************************
'
'' Create a new bitmap.
'Dim bmp As Bitmap = Bitmap.FromFile("C:\DesktopScreenshot.bmp", False)
'
'' Instance a PixelUtil Class.
'Dim bmpPixelUtil As New PixelUtil(bmp)
'
'' Specify the RGB PixelColor to search.
'Dim FindColor As Color = Color.FromArgb(255, 174, 201)
'
'' Get the pixel data.
'Dim FoundPixels As List(Of PixelUtil.PixelData) = bmpPixelUtil.SearchColor(FindColor)
'
'' Loop through each pixel.
'For Each Pixel As PixelUtil.PixelData In FoundPixels
'
'    Dim sb As New System.Text.StringBuilder
'    With sb
'
'        .AppendLine(String.Format("Index: {0}", CStr(Pixel.Index)))
'        .AppendLine(String.Format("Coord: {0}", Pixel.Coordinates.ToString))
'
'        MessageBox.Show(.ToString, "Pixel-Color Search")
'
'        .Clear()
'
'    End With
'
'Next Pixel


' *********************************************************************
' Retrieve the index, color, and coordinates of each pixel in the image
' *********************************************************************
'
'' Create a new bitmap.
'Dim bmp As Bitmap = Bitmap.FromFile("C:\DesktopScreenshot.bmp", False)
'
'' Instance a PixelUtil Class.
'Dim bmpPixelUtil As New PixelUtil(bmp)
'
'' Get the pixel data.
'Dim Pixels As List(Of PixelUtil.PixelData) = bmpPixelUtil.GetPixelData()
'
'' Loop through each pixel.
'For Each Pixel As PixelUtil.PixelData In Pixels
'
'    Dim sb As New System.Text.StringBuilder
'    With sb
'
'        .AppendLine(String.Format("Index: {0}", CStr(Pixel.Index)))
'        .AppendLine(String.Format("Color: {0}", Pixel.Color.ToString))
'        .AppendLine(String.Format("Coord: {0}", Pixel.Coordinates.ToString))
'
'        MessageBox.Show(.ToString, "Pixel Search")
'
'        .Clear()
'
'    End With
'
'Next Pixel


' ****************************************************************************
' Retrieve the index, color, and coordinates of a range of pixels in the image
' ****************************************************************************
'
'' Create a new bitmap.
'Dim bmp As Bitmap = Bitmap.FromFile("C:\DesktopScreenshot.bmp", False)
'
'' Instance a PixelUtil Class.
'Dim bmpPixelUtil As New PixelUtil(bmp)
'
'' Specify the pixel range to retrieve.
'Dim RangeMin As Integer = 1919I
'Dim RangeMax As Integer = 1921I
'
'' Get the pixel data.
'Dim FoundPixels As List(Of PixelUtil.PixelData) = bmpPixelUtil.GetPixelData(RangeMin, RangeMax)
'
'' Loop through each pixel.
'For Each Pixel As PixelUtil.PixelData In FoundPixels
'
'    Dim sb As New System.Text.StringBuilder
'    With sb
'
'        .AppendLine(String.Format("Index: {0}", CStr(Pixel.Index)))
'        .AppendLine(String.Format("Color: {0}", Pixel.Color.ToString))
'        .AppendLine(String.Format("Coord: {0}", Pixel.Coordinates.ToString))
'
'        MessageBox.Show(.ToString, "Pixel-Color Search")
'
'        .Clear()
'
'    End With
'
'Next Pixel


#End Region

#Region " Imports "

Imports System.ComponentModel
Imports System.Drawing.Imaging
Imports System.Runtime.InteropServices

#End Region

#Region " PixelUtil "

Public Class PixelUtil

#Region " Vars, Properties "

    Private _PixelData As List(Of PixelData) = Nothing
    Private _bmp As Bitmap = Nothing
    Private _PixelCount As Integer = Nothing

    ''' <summary>
    ''' Gets the Bitmap object.
    ''' </summary>
    ''' <value>The BMP.</value>
    Public ReadOnly Property bmp As Bitmap
        Get
            Return Me._bmp
        End Get
    End Property

    ''' <summary>
    ''' Gets the total amount of pixels that contains the Bitmap.
    ''' </summary>
    ''' <value>The pixel count.</value>
    Public ReadOnly Property PixelCount As Integer
        Get
            Return Me._PixelCount
        End Get
    End Property

#End Region

#Region " Classes "

    ''' <summary>
    ''' Stores specific pixel information of an image.
    ''' </summary>
    Public Class PixelData

        ''' <summary>
        ''' Gets or sets the pixel index.
        ''' </summary>
        ''' <value>The pixel index.</value>
        Public Property Index As Integer

        ''' <summary>
        ''' Gets or sets the pixel color.
        ''' </summary>
        ''' <value>The pixel color.</value>
        Public Property Color As Color

        ''' <summary>
        ''' Gets or sets the pixel coordinates relative to the image.
        ''' </summary>
        ''' <value>The pixel coordinates.</value>
        Public Property Coordinates As Point

    End Class

#End Region

#Region " Constructors "

    ''' <summary>
    ''' Prevents a default instance of the <see cref="PixelUtil"/> class from being created.
    ''' </summary>
    Private Sub New()
    End Sub

    ''' <summary>
    ''' Initializes a new instance of the <see cref="PixelUtil"/> class.
    ''' </summary>
    ''' <param name="bmp">Indicates the Bitmap image to process it's pixels.</param>
    ''' <exception cref="System.Exception">PixelFormat unsupported.</exception>
    Public Sub New(ByVal bmp As Bitmap)

        If Not bmp.PixelFormat = PixelFormat.Format24bppRgb Then
            Throw New Exception("PixelFormat unsupported.")
        End If

        Me._bmp = bmp
        Me._PixelCount = Me.[Count]

    End Sub

#End Region

#Region " Public Methods "

    ''' <summary>
    ''' Returns a <c>'PixelData'</c> object containing information about each pixel in the image.
    ''' </summary>
    ''' <returns>List(Of PixelData).</returns>
    Public Function GetPixelData() As List(Of PixelData)

        If Me._PixelData Is Nothing Then

            Me._PixelData = New List(Of PixelData)

            ' Lock the Bitmap bits.
            Dim bmpRect As New Rectangle(0, 0, Me._bmp.Width, Me._bmp.Height)
            Dim bmpData As BitmapData = Me._bmp.LockBits(bmpRect, ImageLockMode.ReadWrite, Me._bmp.PixelFormat)

            ' Get the address of the first line.
            Dim Pointer As IntPtr = bmpData.Scan0

            ' Hold the bytes of the bitmap into a Byte-Array.
            ' NOTE: This code is specific to a bitmap with 24 bits per pixels.
            Dim bmpBytes As Integer = (Math.Abs(bmpData.Stride) * bmpRect.Height)
            Dim rgbData(bmpBytes - 1) As Byte

            ' Copy the RGB values into the array.
            Marshal.Copy(Pointer, rgbData, 0, bmpBytes)

            ' Unlock the Bitmap bits.
            Me._bmp.UnlockBits(bmpData)

            ' Loop through each 24bpp-RGB value.
            For rgbIndex As Integer = 2 To rgbData.Length - 1 Step 3

                ' Set the pixel Data.
                Dim Pixel As New PixelData

                With Pixel

                    .Index = rgbIndex \ 3I

                    .Color = Color.FromArgb(red:=rgbData(rgbIndex),
                                            green:=rgbData(rgbIndex - 1I),
                                            blue:=rgbData(rgbIndex - 2I))

                    .Coordinates = New Point(X:=(.Index Mod bmpRect.Width),
                                             Y:=(.Index - (.Index Mod bmpRect.Width)) \ bmpRect.Width)

                End With

                ' Add the PixelData into the list.
                Me._PixelData.Add(Pixel)

            Next rgbIndex

        End If

        Return Me._PixelData

    End Function

    ''' <summary>
    ''' Returns a <c>'PixelData'</c> object containing information about a range of pixels in the image.
    ''' </summary>
    ''' <returns>List(Of PixelData).</returns>
    ''' <exception cref="System.Exception">Pixel index is out of range</exception>
    Public Function GetPixelData(ByVal RangeMin As Integer,
                                 ByVal RangeMax As Integer) As List(Of PixelData)

        If Not (Me._PixelCount >= RangeMin AndAlso Me._PixelCount <= RangeMax) Then
            Throw New Exception("Pixel index is out of range.")
            Return Nothing
        End If

        ' Return the Pixel range.
        Return (From Pixel As PixelData In Me.GetPixelData()
                Where (Pixel.Index >= RangeMin AndAlso Pixel.Index <= RangeMax)).ToList

    End Function

    ''' <summary>
    ''' Searchs for the specified pixel-color inside the image and returns all the matches.
    ''' </summary>
    ''' <param name="PixelColor">Indicates the color to find.</param>
    ''' <returns>List(Of PixelData).</returns>
    Public Function SearchColor(ByVal PixelColor As Color) As List(Of PixelData)

        Return (From Pixel As PixelData In Me.GetPixelData
                Where Pixel.Color = PixelColor).ToList

    End Function

#End Region

#Region " Private Methods "

    ''' <summary>
    ''' Counts the number of pixels that contains the image.
    ''' </summary>
    ''' <returns>The number of pixels.</returns>
    Private Function [Count]() As Integer

        ' Lock the Bitmap bits.
        Dim bmpRect As New Rectangle(0, 0, Me._bmp.Width, Me._bmp.Height)
        Dim bmpData As BitmapData = Me._bmp.LockBits(bmpRect, ImageLockMode.ReadWrite, Me._bmp.PixelFormat)

        ' Get the address of the first line.
        Dim Pointer As IntPtr = bmpData.Scan0

        ' Hold the bytes of the bitmap into a Byte-Array.
        ' NOTE: This code is specific to a bitmap with 24 bits per pixels.
        Dim bmpBytes As Integer = (Math.Abs(bmpData.Stride) * bmpRect.Height)
        Dim rgbData(bmpBytes - 1) As Byte

        ' Copy the RGB values into the array.
        Marshal.Copy(Pointer, rgbData, 0, bmpBytes)

        ' Unlock the Bitmap bits.
        Me._bmp.UnlockBits(bmpData)

        Return rgbData.Count

    End Function

#End Region

#Region " Hidden Methods "

    ''' <summary>
    ''' Serves as a hash function for a particular type.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Sub GetHashCode()
    End Sub

    ''' <summary>
    ''' Determines whether the specified System.Object is equal to the current System.Object.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Sub Equals()
    End Sub

    ''' <summary>
    ''' Returns a String that represents the current object.
    ''' </summary>
    <EditorBrowsable(EditorBrowsableState.Never)>
    Public Shadows Sub ToString()
    End Sub

#End Region

End Class

#End Region
#6872
Te hago la mitad del trabajo, ahora, para ubicar las coordenadas relativas a la imagen por el momento no se me ocurre el modo de hacerlo, pero algo se podrá hacer obteniendo el índice del pixel encontrado (cosa que hago) usandola en alguna fórmula aritmética con el ancho y alto de la imagen.

Public Class PixelData
       Public Index As Integer
       Public Color As Color
       Public Coordinates As Point
   End Class

   Friend Function GetPixelData(ByVal bmp As Bitmap) As List(Of PixelData)

       If Not bmp.PixelFormat = Imaging.PixelFormat.Format24bppRgb Then
           Throw New Exception("PixelFormat no soportado en esta función.")
       End If

       ' Lock the bitmap's bits.  
       Dim rect As New Rectangle(0, 0, bmp.Width, bmp.Height)
       Dim bmpdata As Drawing.Imaging.BitmapData =
           bmp.LockBits(rect, Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat)

       ' Get the address of the first line.
       Dim ptr As IntPtr = bmpdata.Scan0

       ' Declare an array to hold the bytes of the bitmap.
       ' This code is specific to a bitmap with 24 bits per pixels.
       Dim bytes As Integer = Math.Abs(bmpdata.Stride) * bmp.Height
       Dim rgbValues(bytes - 1) As Byte

       ' Copy the RGB values into the array.
       Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes)

       ' Unlock the bits.
       bmp.UnlockBits(bmpdata)

       ' Set the Data to return.
       Dim Pixels As New List(Of PixelData)

       ' Loop through each 24bpp-RGB value.
       For Index As Integer = 2 To rgbValues.Length - 1 Step 3

           Pixels.Add(New PixelData With
                      {
                          .Index = Index \ 3I,
                          .Color = Color.FromArgb(rgbValues(Index), rgbValues(Index - 1I), rgbValues(Index - 2I)),
                          .Coordinates = Point.Empty
                      })

       Next Index

       Return Pixels

   End Function


EDITO: Fórmula encontrada.

Nota: Lo he testeado con una imagen a resolución 2560x1600, el retorno de datos es practicamente instantaneo, la búsqueda puede variar según lo lejos que se encuentre el pixel en la iteración.

Código (vbnet) [Seleccionar]
   ''' <summary>
   ''' Stores specific pixel information of an image.
   ''' </summary>
   Friend Class PixelData

       ''' <summary>
       ''' Gets or sets the pixel index.
       ''' </summary>
       ''' <value>The pixel index.</value>
       Public Property Index As Integer

       ''' <summary>
       ''' Gets or sets the pixel color.
       ''' </summary>
       ''' <value>The pixel color.</value>
       Public Property Color As Color

       ''' <summary>
       ''' Gets or sets the pixel coordinates relative to the image.
       ''' </summary>
       ''' <value>The pixel coordinates.</value>
       Public Property Coordinates As Point

   End Class

   ''' <summary>
   ''' Returns a <c>'PixelData'</c> object containing information about each pixel of an image.
   ''' </summary>
   ''' <param name="bmp">Indicates the Bitmap image to process.</param>
   ''' <returns>List(Of PixelData).</returns>
   ''' <exception cref="System.Exception">PixelFormat unsupported.</exception>
   Friend Function GetPixelData(ByVal bmp As Bitmap) As List(Of PixelData)

       If Not bmp.PixelFormat = Imaging.PixelFormat.Format24bppRgb Then
           Throw New Exception("PixelFormat unsupported.")
       End If

       ' Lock the Bitmap bits.
       Dim bmpRect As New Rectangle(0, 0, bmp.Width, bmp.Height)
       Dim bmpData As Drawing.Imaging.BitmapData =
           bmp.LockBits(bmpRect, Imaging.ImageLockMode.ReadWrite, bmp.PixelFormat)

       ' Get the address of the first line.
       Dim Pointer As IntPtr = bmpData.Scan0

       ' Hold the bytes of the bitmap into a Byte-Array.
       ' NOTE: This code is specific to a bitmap with 24 bits per pixels.
       Dim bmpBytes As Integer = (Math.Abs(bmpData.Stride) * bmpRect.Height)
       Dim rgbData(bmpBytes - 1) As Byte

       ' Copy the RGB values into the array.
       Runtime.InteropServices.Marshal.Copy(Pointer, rgbData, 0, bmpBytes)

       ' Unlock the Bitmap bits.
       bmp.UnlockBits(bmpData)

       ' Instance the object to return.
       Dim Pixels As New List(Of PixelData)

       ' Loop through each 24bpp-RGB value.
       For rgbIndex As Integer = 2 To rgbData.Length - 1 Step 3

           ' Get the pixel values.
           Dim PixelIndex As Integer = rgbIndex \ 3I
           Dim PixelCoordX As Integer = PixelIndex Mod bmpRect.Width
           Dim PixelCoordY As Integer = (PixelIndex - PixelCoordX) \ bmpRect.Width
           Dim PixelColorR As Short = rgbData(rgbIndex)
           Dim PixelColorG As Short = rgbData(rgbIndex - 1I)
           Dim PixelColorB As Short = rgbData(rgbIndex - 2I)

           ' Set the pixel Data.
           Dim Pixel As New PixelData
           With Pixel
               .Index = PixelIndex
               .Color = Color.FromArgb(PixelColorR, PixelColorG, PixelColorB)
               .Coordinates = New Point(PixelCoordX, PixelCoordY)
           End With

           ' Add the PixelData into the list.
           Pixels.Add(Pixel)

       Next rgbIndex

       Return Pixels

   End Function


Ejemplo de uso:

Código (vbnet) [Seleccionar]
   Public Sub Test() Handles Button1.Click

       ' Create a new bitmap.
       Dim bmp As Bitmap = Bitmap.FromFile("Imagen de la pantalla.bmp", False)

       ' Specify the RGB PixelColor to search.
       Dim FindColor As Color = Color.FromArgb(255, 174, 201)

       ' Get the pixel data.
       Dim Pixels As List(Of PixelData) = Me.GetPixelData(bmp)

        ' Loop through each pixel.
       For Each Pixel As PixelData In Pixels

           If Pixel.Color.Equals(FindColor) Then

               Dim sb As New System.Text.StringBuilder
               With sb

                   .AppendLine(String.Format("Index: {0}", CStr(Pixel.Index)))
                   .AppendLine(String.Format("Color: {0}", Pixel.Color.ToString))
                   .AppendLine(String.Format("Coord: {0}", Pixel.Coordinates.ToString))

                   MessageBox.Show(.ToString, "Pixel Search")

                   .Clear()

               End With

           End If

       Next Pixel

   End Sub


Saludos
#6873
Bueno, necesitaba una respuesta rápida (por miedo a que el problema fuese a mayores) y como no he podido obtener la ayuda que necesitaba, ya me respondo a mi mismo.

Al final, basandome en los comentarios de varios productos, he decidido comprado un Cooler Master Hyper 212 EVO.



Me podría haber permitido comprar un Cooler más caro, pero sin haber obtenido una opinión experta pues...tampoco voy a arriesgarme sin saber si hacia bien o mal, lo caro no siempre resulta mejor.

PD: Si alquien quiere que le cuente mi experiencia sobre el producto, después de haberlo instalado, que lo comente y con gusto le describiré los detalles.

Saludos!
#6874
Hardware / Re: Duda pasta térmica
9 Julio 2014, 14:49 PM
Cita de: simorg en  9 Julio 2014, 14:37 PMalguna vez has tenido que leer algo parecido a lo que preguntabas.

Es posible, pero a aquello que creemos que no necesitamos aprender, o que directamente no nos interesa leer pues no le hacemos mucho caso y se olvida...
Además, yo no navego por los sub-foros de Hardware ni leo preguntas de ese estilo porque se que no puedo aportar ninguna ayuda.

PD: Gracias por decirme como limpiar la pasta, porque ya iba a preguntarlo xD.

Saludos!
#6875
Hardware / Re: Duda pasta térmica
9 Julio 2014, 14:31 PM
Cita de: simorg en  9 Julio 2014, 14:15 PM@Electro, ¿A estas alturas, esto lo dices en serio........?  :rolleyes: :rolleyes: :rolleyes:

¿De que alturas estás hablando?, me doy cuenta que he sido un poco cazurro al hacer una pregunta tan básica (para quien sepa, claro), pero no lo veo motivo de burla, nunca se me ha dado bien el tema de Hardware, y simplemente me da miedo estropear un material tan... "sensible".

Gracias @engel lex y @Simorg

Saludos!
#6876
Hardware / Duda pasta térmica
9 Julio 2014, 12:37 PM
Hola

Tengo una duda muy básica, ¿la paste térmica, se pone encima de la pasta ya existente?, ¿sin más?.

Es decir, yo me he comprado un AMD que tiene su pasta térmica puesta ya de serie (como es obvio xD) con su ventilador y tal encima, bien, yo me he comprado un ventildor para reemplazar el de serie, que además trae pasta térmica, y yo sé desanclar y montar un ventilador de CPU, pero no se nada al respecto de la pasta térmica, osea de la capa blanca del disipador (porque pasta térmica / disipador es lo mismo no?), ¿es tan sencillo como echar una capa por encima de la pasta que ya trae puesta el chipset?, ¿y como cuanta cantidad de debe poner?, no la quiero cagar, vaya, ¿pasaría algo grave si pongo demasiada pasta sin querer?.

Necesito palabras textuales que me aclaren esta duda, pero además de esto me gustaria que alguien pudiera compartir un video donde enseñen el montaje correcto de la pasta térmica (fotos no, porfavor, que ya vi unas cuantas y sigo sin aclararme).

Gracias por leer,
Esaludos!
#6877
Hay que tener en cuenta que el método sugerido por @engel lex, "ScrollToCaret", como su propio nombre indica lo único que hace es deslizar el ScrollBar hasta la posición del Caret (el Caret es el cursor de texto) así que usarlo por si solo no sería una solución viable según que caso, ya que si no modificas la posición del Caret, siempre va a escrollear a la misma posición

Si estás usando el método "AppendText" para adjuntar texto:
Código (vbnet) [Seleccionar]
RichTextBox1.AppendText("Texto")
Entonces una llamada a "ScrollToCaret" será suficiente, porque el método "AppendText", además de adjuntar texto, pone la posición del Caret al final del texto adjuntado.

Por otro lado, si estás adjuntando texto de esta manera:
Código (vbnet) [Seleccionar]
RichTextBox1.Text &= "Texto"
Entonces necesitas modificar manualmente la posición del Caret, para poder Scrollear hacia abajo.

Por eso, según el caso, te sugiero una de las siguientes soluciones, aunque de todas formas la última solución deberías evitarla siempre que puedas, ya que lo correcto es usar el método "AppendText":

· .AppendText:
Código (vbnet) [Seleccionar]
   Private Sub RichTextBox_AutoScroll(ByVal sender As Object, ByVal e As EventArgs) _
   Handles RichTextBox1.TextChanged

       If CBool(sender.TextLength) Then
           sender.ScrollToCaret()
       End If

   End Sub


· .Text &=
Código (vbnet) [Seleccionar]
   Private Sub RichTextBox_AutoScroll(ByVal sender As Object, ByVal e As EventArgs) _
   Handles RichTextBox1.TextChanged

       Dim _TextLength As Integer = sender.TextLength

       With sender

           If CBool(_TextLength) Then

               .SelectionStart = _TextLength
               .ScrollToCaret()

           End If

       End With

   End Sub


Nota: Obviamente, si piensas escribir manualmente en el Control, entonces la solución con el método ".Text &=" de poco sirve. ya que estoy enviando el Caret al final del texto, siempre.

Saludos
#6878
No especificas muchos datos, ni si pretendes abrir el cliente de correo predeterminado, o si lo quieres enviar usando solo código, ni con que servicio de correo POP3 o SMTP...

Ejemplo:

Código (vbnet) [Seleccionar]
    ' GMailSender("Username@Gmail.com", "Password", "Email Subject", "Message Body", "Destiny@Address.com")

    Private Function GMailSender(ByVal sername As String, ByVal Password As String, ByVal Subject As String, ByVal Body As String, ByVal DestinyAddress As String) As Boolean
        Try
            Dim MailSetup As New System.Net.Mail.MailMessage
            MailSetup.Subject = Subject
            MailSetup.To.Add(DestinyAddress)
            MailSetup.From = New System.Net.Mail.MailAddress(Username)
            MailSetup.Body = Body
            Dim SMTP As New System.Net.Mail.SmtpClient("smtp.gmail.com")
            SMTP.Port = 587
            SMTP.EnableSsl = True
            SMTP.Credentials = New Net.NetworkCredential(Username, Password)
            SMTP.Send(MailSetup)
            Return True ' Email is sent OK
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try
    End Function


En C#:
http://converter.telerik.com/

Saludos.
#6879
Cita de: Linton en  8 Julio 2014, 08:27 AM&#61687;&#61687;&#61687;&#61687;&#61687;&#61687

Son caracteres escapados de HTML: http://www.theukwebdesigncompany.com/articles/entity-escape-characters.php

Cada entidad corresponde a un caracter especifico y este se interpreta por el navegador (si no me equivoco), los puedes decodificar aquí: http://www.web2generators.com/html/entities
"&#61687" = ""

Sobre el caracter decodificado de la tecla "F0-F7" () aquí tienes info: http://www.htmlescape.net/f0/character_f0f7.html

PD: Cuando vi tu duda el otro día, iba a responderte para decirte que parecia que se tratase de un problema de decodificación de caracteres Unicode, pero luego le hice zoom al texto y me di cuenta de que no parece un error, al menos a mi no me lo parece, y más ahora que has aclarado que son caracteres escapados,es decir que los caracteres que se indican mostrar desde el source son esos, las teclas F0-F12 etc, no se porque razón ...supongo que el misterio se resolvería sabiendo de donde obtuviste el texto xD.

Saludos
#6880
1. No estás liberando el FolderBrowserDialog que instancias.

Código (vbnet) [Seleccionar]
   Private Sub btnexaminar_Click(sender As Object, e As EventArgs) Handles btnexaminar.Click

       Using Dir As New FolderBrowserDialog

           If Dir.ShowDialog = DialogResult.OK Then
               TextBox1.Text = Dir.SelectedPath
           End If

       End Using

   End Sub


2. Reducción de código de Botones:



Código (vbnet) [Seleccionar]

    Private CMDThread As Threading.Thread = Nothing

   Friend ReadOnly Property MiDirectorio As String
       Get
           Return TextBox1.Text
       End Get
   End Property

   Private Sub btndat_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btndat.Click

       Me.CMDThread = New Threading.Thread(AddressOf Me.CMDAutomate)
       Me.CopyFile("C:\Program Files\convert data\runpkr00.exe", IO.Path.Combine(Me.MiDirectorio, "\runpkr00.exe"))
       CMDThread.Start()

   End Sub

   Private Sub btnrinex_Click(sender As Object, e As EventArgs) Handles btnrinex.Click

       Me.CMDThread = New Threading.Thread(AddressOf Me.CMDAutomaterin)
       Me.CopyFile("C:\Program Files\convert data\teqc.exe", IO.Path.Combine(Me.MiDirectorio, "\teqc.exe"))
       Me.CMDThread.Start()

   End Sub

   Private Sub btntqc_Click(sender As Object, e As EventArgs) Handles btntqc.Click

       Me.CMDThread = New Threading.Thread(AddressOf Me.CMDAutomateqc)
       Me.CopyFile("C:\Program Files\convert data\teqc.exe", IO.Path.Combine(Me.MiDirectorio, "\teqc.exe"))
       Me.CMDThread.Start()

   End Sub

    Private Sub CopyFile(ByVal sourcefile As String, ByVal destinationfile As String)

        If String.IsNullOrEmpty(Me.MiDirectorio) Then
            MessageBox.Show("Debe seleccionar la ruta donde se encuentra la data", "Error",
                            MessageBoxButtons.OKCancel, MessageBoxIcon.Error)

        Else
            My.Computer.FileSystem.CopyFile(sourcefile, destinationfile,
                                            FileIO.UIOption.OnlyErrorDialogs,
                                            FileIO.UICancelOption.DoNothing)

        End If

    End Sub


3. Reducción de código de Procesos

Eliminar todo esto repetido:
       Dim myprocess As New Process
       Dim StartInfo As New System.Diagnostics.ProcessStartInfo
       StartInfo.FileName = "cmd"
       StartInfo.RedirectStandardInput = True
       StartInfo.RedirectStandardOutput = True
       StartInfo.UseShellExecute = False
       StartInfo.CreateNoWindow = True
       myprocess.StartInfo = StartInfo


por:

Código (vbnet) [Seleccionar]
   Friend MyProcess As New Process With
   {
       .StartInfo = New ProcessStartInfo With
                    {
                        .FileName = "cmd",
                        .RedirectStandardInput = True,
                        .RedirectStandardOutput = True,
                        .UseShellExecute = False,
                        .CreateNoWindow = True
                    }
   }


PD: Aun se puede simplificar más, tanto los botones como las tareas de los threads, pero creo que con eso ya te basta :P.

Saludos