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

#4301
Les traigo una nueva actualización de este útil módulo, ProfillingUtil.vb, que como su nombre indica está orientado a escenarios de Profilling y test de unidades de código, aunque todavía es un módulo muy sencillito.

Al módulo le añadí dos métodos asíncronos, uno para medir el tiempo de ejecución de una operación, y otro para evaluar si una operación fue exitosa o no. Aparte, he refactorizado los métodos sincrónicos que ya mostré en snippets anteriores... los cuales ahora exponen el resultado a través de la estructura ProfillingUtil.TestExecutionInfo para un manejo más sencillo o familiar e intuitivo.

Sin más, abajo les muestro el código fuente y ejemplos de uso.

Recuerden que aquí tienen más snippets:



Saludos




Ejemplo de uso asíncronico:

Código (vbnet) [Seleccionar]
Imports System
Imports System.Threading.Tasks

Public Class Form1 : Inherits Form

   Private Sub Test() Handles Me.Shown

       Dim taskTestTime As Task(Of TestExecutionInfo) =
           ProfillingUtil.TestTimeAsync(Sub()
                                            For x As Integer = 0 To 5000
                                                Console.WriteLine(x)
                                            Next x
                                        End Sub)

       taskTestTime.ContinueWith(Sub() Me.ShowTestExecutionInfo(taskTestTime.Result))

   End Sub

   Private Sub ShowTestExecutionInfo(ByVal teInfo As TestExecutionInfo)

       Dim sb As New StringBuilder
       Select Case teInfo.Success

           Case True
               With sb ' Set an information message.
                   .AppendLine(String.Format("Method Name: {0}", teInfo.Method.Name))
                   .AppendLine()
                   .AppendLine(String.Format("Elapsed Time: {0}", teInfo.Elapsed.ToString("hh\:mm\:ss\:fff")))
               End With
               MessageBox.Show(sb.ToString, "Code Execution Measurer", MessageBoxButtons.OK, MessageBoxIcon.Information)

           Case Else
               With sb ' Set an error message.
                   .AppendLine("Exception occurred during code execution measuring.")
                   .AppendLine()
                   .AppendLine(String.Format("Method Name: {0}", teInfo.Method.Name))
                   .AppendLine()
                   .AppendLine(String.Format("Exception Type: {0}", teInfo.Exception.GetType.Name))
                   .AppendLine()
                   .AppendLine("Exception Message:")
                   .AppendLine(teInfo.Exception.Message)
                   .AppendLine()
                   .AppendLine("Exception Stack Trace:")
                   .AppendLine(teInfo.Exception.StackTrace)
               End With
               MessageBox.Show(sb.ToString, "Code Execution Measurer", MessageBoxButtons.OK, MessageBoxIcon.Error)

       End Select

   End Sub

End Class


Ejemplo de uso síncronico:

Código (vbnet) [Seleccionar]
   Sub Test()

       Dim successful As Boolean =
           ProfillingUtil.TestSuccess(Sub() Convert.ToInt32("Hello World!"))

       Dim teInfo As TestExecutionInfo =
           ProfillingUtil.TestTime(Sub()
                                       For x As Integer = 0 To 2500
                                           Console.WriteLine(x)
                                       Next x
                                   End Sub)

       Dim sb As New StringBuilder
       Select Case teInfo.Success

           Case True
               With sb ' Set an information message.
                   .AppendLine(String.Format("Method Name: {0}", teInfo.Method.Name))
                   .AppendLine()
                   .AppendLine(String.Format("Elapsed Time: {0}", teInfo.Elapsed.ToString("hh\:mm\:ss\:fff")))
               End With
               MessageBox.Show(sb.ToString, "Code Execution Measurer", MessageBoxButtons.OK, MessageBoxIcon.Information)

           Case Else
               With sb ' Set an error message.
                   .AppendLine("Exception occurred during code execution measuring.")
                   .AppendLine()
                   .AppendLine(String.Format("Method Name: {0}", teInfo.Method.Name))
                   .AppendLine()
                   .AppendLine(String.Format("Exception Type: {0}", teInfo.Exception.GetType.Name))
                   .AppendLine()
                   .AppendLine("Exception Message:")
                   .AppendLine(teInfo.Exception.Message)
                   .AppendLine()
                   .AppendLine("Exception Stack Trace:")
                   .AppendLine(teInfo.Exception.StackTrace)
               End With
               MessageBox.Show(sb.ToString, "Code Execution Measurer", MessageBoxButtons.OK, MessageBoxIcon.Error)

       End Select

   End Sub





Código fuente del módulo ProfillingUtil.vb:

EDITO:

BUENO, POR LO VISTO EN EL FORO NO CABE UN MISERABLE CÓDIGO DE 700 LINEAS. ASÍ QUE NO PUEDO PUBLICARLO AQUÍ. COPIEN Y PEGUEN DESDE EL GITHUB:
https://raw.githubusercontent.com/ElektroStudios/VBNetSnippets/master/Profilling/Profilling%20Util.vb
#4302
A falta de conocer los detalles necesarios de como lo estás haciendo, aquí tienes una solución general:


Saludos
#4303
Cita de: motocros_elche en 27 Octubre 2015, 20:58 PMEstoy interesado en aprender a desarrollar apps universales para windows 10.
Por ahora solo quiero aprender esto, tengo tiempo, pero no se por que lenguajes empezar ni que libros son los mas adecuados, lo que no quiero es aprender cosas que después no me vayan a servir para esto.

Puedes optar por iniciarte en la plataforma .Net, lenguaje VB.Net/C# + Xaml, tecnología Universal Windows Platform (UWP), aunque puede resultarte un calvario si no tienes idea básica de programación en general.

Toda la información que necesitas, tanto para principiantes como para avanzados, la encontrarás en la MSDN:


Saludos
#4304
Tienes razón, no me di cuenta que declaré dos funciones con las prisas xD

Reectifico lo que dije aquí:
CitarLa cual por cierto no se por que la declaré von visibilidad Private, modifica el keyword Private por Public para poder utilizarla.

Está todo bien, solo que tienes que ignorar eso último que dije, tienes que usar la otra función ...la que ya es publica, pues esa función llama a la función privada.

Saludos
#4305
Scripting / Re: Error con VBscript que habla
27 Octubre 2015, 05:00 AM
Cita de: Flamer en 27 Octubre 2015, 04:26 AMAqui el error en video

Nadie ha insinuado que mientas... aparte, tanto el código de @Tincopasan como el de @_TTFH_3500 como el tuyo y el mio, los cuatro son y hacen exactamente lo mismo que publicaste en tu código, solo que el orden de las cosas cambia.

Repito, Flamer, ¿estás seguro de que tienes las voces SAPI instaladas?, ¿estás usando un Windows modificado?, y, ¿has probado el script que te mostré?.

No lo pregunto por pensar que mientas, lo pregunto por que es un dato importante, puede ser la causa del problema. Y es que el error dice claramente "null".

Abre una instancia de la CMD y ejecuta el comando SFC para buscar fallos en el sistema de archivos de Windows y corregirlos:
SFC /ScanNow

Saludos!
#4306
Scripting / Re: Error con VBscript que habla
27 Octubre 2015, 03:55 AM
Según la documentación de la MSDN no estás haciendo nada de forma incorrecta:
http://msdn.microsoft.com/en-us/library/ms720592%28v=vs.85%29.aspx




Cita de: Flamer en 27 Octubre 2015, 02:44 AMsigue igual parece ser mi ordenador por que ni el textaloud y el balabolka funcionan no dan señales de vos

pero ...¿estás seguro de tener las voces SAPI instaladas en tu equipo?. o dicho de otra forma, ¿estás utilizando un Windows modificado?, me refiero al típico "Windows edition taringa por calamar69" que podría tener características capadas, como por ejemplo las functiones TTS/SAPI de Microsoft.

Prueba de la siguiente manera:
Código (vb) [Seleccionar]
Set speech = Wscript.CreateObject("SAPI.SpVoice")

If (speech Is Nothing) Then
  Call WScript.Echo("Fallo al intentar cargar el objeto COM")

Else
  Set speech.Voice = speech.GetVoices.Item(0) ' La voz de "SAM".
  Call speech.Speak(speech.Voice.GetDescription)
 
  While Not speech.WaitUntilDone(0)
    WScript.Sleep 100
  Wend
 
End If


Saludos
#4307
Imagino que estas usando esta extensión de método?:

Cita de: http://foro.elhacker.net/net/cambiar_palabras_de_un_archivo_txt-t443323.0.html;msg2044424#msg2044424
Código (vbnet) [Seleccionar]
   Private Function Replace(ByVal sender As String,
                            ByVal findWhat As String,
                            ByVal replaceWith As String,
                            ByVal comparisonType As StringComparison,
                            ByVal stringBuilderCapacity As Integer) As String

...

   End Function

La cual por cierto no se por que la declaré von visibilidad Private, modifica el keyword Private por Public para poder utilizarla.

Aparte, el parámetro sender se asigna automaticamente, debes ignorarlo y dejarlo así:
Código (vbnet) [Seleccionar]
...Replace(txtfind, txtreplace, comparisonType, 128)

saludos
#4309
Ingeniería Inversa / Re: Necesito ayuda!!!
26 Octubre 2015, 21:42 PM
A voz de pronto te sugiero empezar por leer un tutorial básico de Cheat Engine, sobre todo de los métodos de invisibilidad o indetectabilidad (los que puedes usar desde las opciones del programa, o usando plugins de terceros).

Saludos