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

#441
Cita de: FJDA en 11 Abril 2019, 20:38 PM
Me ha parecido muy curioso así que posteo.

Un código de uso genérico que te puede servir. Lo he extraido de mi framework comercial: DevCase for .NET Framework

Código (vbnet) [Seleccionar]
' Namespace DevCase.Core.Xml.Tools

    Partial Public NotInheritable Class XmlUtil

#Region " Public Methods "

        ''' ----------------------------------------------------------------------------------------------------
        ''' <summary>
        ''' Beautifies the contents of an Xml document.
        ''' </summary>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <example> This is a code example.
        ''' <code>
        ''' Dim enc As Encoding = Encoding.Default
        '''
        ''' Dim unformattedXmlDocument As String =
        '''     File.ReadAllText("C:\Unformatted Document.xml", enc)
        '''
        ''' Dim formattedXmlDocument As String =
        '''     XmlBeautifier(xmlText:=unformattedXmlDocument,
        '''                   indentChars:=New String(" "c, 2),
        '''                   indentOnAttributes:=True,
        '''                   enc:=enc)
        '''
        ''' File.WriteAllText("C:\Formatted Document.xml", formattedXmlDocument, enc)
        ''' </code>
        ''' </example>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <param name="xmlText">
        ''' The Xml text content.
        ''' It can be an entire document or a fragment.
        ''' </param>
        '''
        ''' <param name="indentChars">
        ''' The string that is used to indent the Xml.
        ''' <para></para>
        ''' Default value is <see cref="ControlChars.Tab"/>
        ''' </param>
        '''
        ''' <param name="indentOnAttributes">
        ''' If set to <see langword="True"/>, attributes will be separated by newlines.
        ''' </param>
        '''
        ''' <param name="enc">
        ''' The Xml text encoding to use.
        ''' <para></para>
        ''' Default value is <see cref="Encoding.Default"/>.
        ''' </param>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <returns>
        ''' The beautified Xml text.
        ''' </returns>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <exception cref="ArgumentNullException">
        ''' xmlText
        ''' </exception>
        ''' ----------------------------------------------------------------------------------------------------
        <DebuggerStepThrough>
        Public Shared Function XmlBeautifier(ByVal xmlText As String,
                                             Optional ByVal indentChars As String = "",
                                             Optional ByVal indentOnAttributes As Boolean = False,
                                             Optional ByVal enc As Encoding = Nothing) As String

            If String.IsNullOrEmpty(xmlText) OrElse String.IsNullOrWhiteSpace(xmlText) Then
                Throw New ArgumentNullException(paramName:=NameOf(xmlText))

            Else
                Dim xmlDoc As New XmlDocument
                xmlDoc.LoadXml(xmlText)
                Return XmlBeautifier(xmlDoc, indentChars, indentOnAttributes, enc)

            End If

        End Function

        ''' ----------------------------------------------------------------------------------------------------
        ''' <summary>
        ''' Beautifies the contents of an Xml document.
        ''' </summary>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <example> This is a code example.
        ''' <code>
        ''' Dim enc As Encoding = Encoding.Default
        '''
        ''' Dim xmlDoc As New XmlDocument
        ''' xmlDoc.LoadXml("xmlText")
        '''
        ''' Dim formattedXmlDocument As String =
        '''     XmlBeautifier(xmlDoc:=xmlDoc,
        '''                   indentChars:=New String(" "c, 2),
        '''                   indentOnAttributes:=True,
        '''                   enc:=enc)
        '''
        ''' File.WriteAllText("C:\Formatted Document.xml", formattedXmlDocument, enc)
        ''' </code>
        ''' </example>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <param name="xmlDoc">
        ''' The Xml document.
        ''' It can be an entire document or a fragment.
        ''' </param>
        '''
        ''' <param name="indentChars">
        ''' The string that is used to indent the Xml.
        ''' <para></para>
        ''' Default value is <see cref="ControlChars.Tab"/>
        ''' </param>
        '''
        ''' <param name="indentOnAttributes">
        ''' If set to <see langword="True"/>, attributes will be separated by newlines.
        ''' </param>
        '''
        ''' <param name="enc">
        ''' The Xml text encoding to use.
        ''' <para></para>
        ''' Default value is <see cref="Encoding.Default"/>.
        ''' </param>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <returns>
        ''' The beautified Xml text.
        ''' </returns>
        ''' ----------------------------------------------------------------------------------------------------
        ''' <exception cref="ArgumentNullException">
        ''' xmlText
        ''' </exception>
        ''' ----------------------------------------------------------------------------------------------------
        <DebuggerStepThrough>
        Public Shared Function XmlBeautifier(ByVal xmlDoc As XmlDocument,
                                             Optional ByVal indentChars As String = "",
                                             Optional ByVal indentOnAttributes As Boolean = False,
                                             Optional ByVal enc As Encoding = Nothing) As String

            Dim sb As New Global.System.Text.StringBuilder(capacity:=4096)
            Dim settings As New XmlWriterSettings With {
                .Indent = True,
                .CheckCharacters = True,
                .OmitXmlDeclaration = False,
                .ConformanceLevel = ConformanceLevel.Auto,
                .NamespaceHandling = NamespaceHandling.Default,
                .NewLineHandling = NewLineHandling.Replace,
                .NewLineChars = ControlChars.NewLine,
                .NewLineOnAttributes = indentOnAttributes,
                .IndentChars = If(indentChars, ControlChars.Tab),
                .Encoding = If(enc, Encoding.Default),
                .CloseOutput = True
            }

            Using writer As XmlWriter = XmlWriter.Create(sb, settings)
                xmlDoc.WriteContentTo(writer)
                writer.Flush()
            End Using

            Return sb.ToString()

        End Function

#End Region

    End Class

' End Namespace


Saludos.
#442
En mi desesperación desencadenada por un conflicto ético que tengo conmigo mismo por que no le quiero estirpar los ovarios a mi gatita, fui a una farmacia a hablar con un tipo que sabe de veterinaria, a ver si sabía de algún medicamente para calmar a una gata en celo, y me habló sobre el Progevera...



Se supone que es un anticonceptivo para humanos, pero que también funciona para las gatas. Este farmaceutico dijo que si se le da una pastilla cada semana (creo recordar) durante 8 meses, es una forma de esterilizar a la gata de forma inofensiva, quiero decir, sin efectos secundarios como infecciones y tal que puedan surgir en una cirugía para extraerle los ovarios.

Claro, yo le pregunté: "si esto fuese así de facil, ¿entonces por que nadie usa esto y todo el mundo se deja 200€ y 300€ en castrar a las gatas?", a lo que el farmaceutico me respondió: "por que no lo saben".

Logicamente tengo mis dudas sobre la veracidad de sus afirmaciones y la recomendación sobre este medicamenteo anticonceptivo. Si le pregunto a la veterinaria habitual, me va a decir lo que le interesa decirme para que me gaste 300€ en castrarla (cosas del estilo "si no la castras pronto, se podría tirar por el balcón", es lo habitual y no me interesa escuchar falsedades exageradas para que me vendan una operación quirúrgica), así que sinceramente no se donde obtener una segunda opinión médica que sea sincera... pero tengo que intentarlo:

¿Alguien sabe si es buena idea darle Progevera para calmar a una gata en celo?, ya no para esterilizarla, sino simplemente para calmarla, para que no maulle todo el santo dia y esas cosas...

He intentado buscar otro tipo de productos que no sean medicamentos, como por ejemplo cierto spray facial para gatos de la marca Feliway Classic que desprende unas feromonas felinas o no se que historias y que en teoría eso sirve para calmar a los gatos, pero al parecer esto no funciona para calmar el celo a una gata, sino más bien para que no se acerquen a sitios donde les gusta arañar (ej. un sofá), y al parecer para eso tampoco funciona bien que digamos... no se si llamarlo timo, o simplemente un fracaso de producto.

Luego, un día hace ya tiempo vi un video en Youtube con un título algo así: "como calmar a una gata en celo" en el que salía una muchacha que se ponía un guante de plástico o algo parecido en la mano y le empezaba a dar palmaditas suaves a la gata en el culo. Eso lo he probado, y más que calmarla yo diría que consigue el efecto opuesto: sobreexcitarla.

En mi experiencia personal, lo único que realmente la calma es cogerla en brazos para darle muchos mimos y caricias y dejar que se frote el morro en mis manos y el cuerpo en general, siempre evitando acariciarle por la zona del trasero por que eso parece excitarla. Pero claro, esto no es muy efectivo ya que el efecto calmante solamente dura mientras uno le esté dando mimos, y luego enseguida se pondrá a maullar por ahí como una loca en cuanto la sueltes...

Un saludo.
#443
Citar'El Puma' José Luis Rodríguez quiere ser presidente de Venezuela

Bueno, cosas peores se han visto en el mundillo de la política...



Y si mañana me dicen que Leticia Sabater se presenta para algún cargo político de España, yo me lo creo.
#444
Una noticia informática de gran relevancia.      (¡ prensa de mierd@ !)

Por cierto, más divertido es el video de la novia loca que le rompe la xbox (creo que era xbox) a su novio. La verdad es que hay videos como este a pares...
#445
Cita de: Machacador en  2 Abril 2019, 00:20 AM
Todos semos adictos a algo... siempre... sin excepción alguna...

:rolleyes: :o :rolleyes:

Saldos.

Mi gata es adicta a mi cuerpo...

Si me siento en una silla, se coloca encima de mis piernas y se queda ahí a dormir. Si me acuesto en la cama boca arriba, se tumba encima de mi pecho, o al lado de mi cuello y se enrosca como hacen los gatos, o a veces la muy descarada me pone el culo en toda la cara, y cuando me despierto noto cierto olorcillo...

Eso no es todo. Si me tumbo de costado en la cama, se me sube al abdomen y se queda ahí. Si me siento en el sofá/sillón con las piernas cruzadas en posición de hacer yoga, se me sube a una pierna y se queda ahí. Le gusta demasiado subirse a mis extremidades y a mi cuerpo en general para ponerse a descansar.

Doctor, doctor, ¿es normal esta conducta gatuna?.
#446
Hay algunas cosas que no tengo del todo claro, empezando por la necesidad que tienes de enviar pulsaciones del teclado a los controles de tu propia interfaz de usuario. Por ejemplo para invocar un botón de forma programática simplemente podrías llamar al método Button.PerformClick(), aunque imagino que eso ya lo sabías.

Bueno, he estado revisando el sample que me has enviado y el fallo realmente es muy simple. Sencillamente te estás confundiendo de tecla, sí, la tecla que debes enviar para invocar la acción predeterminada de un botón no es la tecla INSERT, sino la tecla ENTER, ya sea el ENTER normal o el del pad numérico, es decir, "{ENTER}" o "~".
Tu botón recibe correctamente los mensajs de ventana WM_KEYDOWN y WM_KEYUP de la tecla INSERT, pero el botón "no hace nada" por que la tecla INSERT no sirve para invocar la acción predeterminada.

Vamos, que simplemente debes reemplazar "{INSERT}" por "{ENTER}", aunque no se si esto solucionará todos los problemas que tengas realmente, pero podemos ir solucionáandolos uno por uno. De momento ya te he explicado como solucionar este error.




Por último, y como cliente que eres, te explico diferentes formas de enviar pulsaciones del teclado usando mi librería comercial DevCase for .NET Framework:

1. Enviar una pulsación sincrónica del teclado mediante las extensiones para la clase Control:
Código (vbnet) [Seleccionar]
Imports DevCase.Core.Extensions.Control
Imports DevCase.Core.IO

Dim ctrl As Control = ImportarVentas
ctrl.SendKey(Keys.Enter, KeyBehavior.Press)


2. Enviar una pulsación asincrónica del teclado mediante las extensiones para la interface IWin32Window:
Nótese que esta llamada se realizará de forma sincrónica si la utilizas para enviar la pulsación a una ventana/control de tu aplicación actual
Código (vbnet) [Seleccionar]
Imports DevCase.Core.Extensions.IWin32Window
Imports DevCase.Core.IO

Dim window As IWin32Window = ImportarVentas
window.SendKeyAsync(Keys.Enter, KeyBehavior.Press)


3. Enviar una pulsación sincrónica del teclado a la ventana activa en el sistema, mediante la clase KeyboardUtil:
Código (vbnet) [Seleccionar]
Imports DevCase.Core.IO
Imports DevCase.Core.IO.Tools

KeyboardUtil.SendKey(Keys.Enter, KeyBehavior.Press)


4. Enviar una pulsación asincrónica del teclado a una ventana externa, mediante la clase KeyboardUtil:
Código (vbnet) [Seleccionar]
Imports DevCase.Core.IO
Imports DevCase.Core.IO.Tools

Dim hWnd As IntPtr = IntPtr.Zero
Dim success As Boolean = KeyboardUtil.SendKeyAsync(hWnd, Keys.Enter, KeyBehavior.Press)



Diferenciación: SendKey internamente usa la infraestructura Raw Input, mientras que SendKeyAsync usa la función PostMessage.


Eso es todo. ¡Un saludo!.
#447
si me pasas el software y el código fuente de la macro que envía la pulsación de la tecla a ese software, te lo puedo mirar en Windows 10 y quizás te sea de ayuda-

saludos
#448
Primero que nada, y disculpa que te lo diga pero es que realmene se me hace horrible ver tanto guión bajo junto. No se como tú te entiendes con eso, pero a mi se me hace muy dificil/tedioso la lectura de tanto guión bajo.

El caso es que no estás siguiendo las convenciones de nomenclaturas recomendadas para la programación .NET, y sin entrar mucho en detalle te puedo decir que basicamente consiste en usar Camel case para casi todos los tipos de miembros indiferentemente de su modificador de visibilidad (excepto algunos casos, pero ya dije que sin entrar en muchos detalles).

Aparte de eso, yo en tu lugar sellaría la clase Archivos, quitaría la asignación de un valor inicial (innecesario) en los campos str_*, y los constructores los dejaría así:

Código (vbnet) [Seleccionar]
Public NotInheritable Class Archivos

   Private str_ruta_archivo_entradas As String
   Private str_ruta_archivo_valorizado As String
   Private str_ruta_archivo_salidas As String
   Private str_entradas_salidas_excluir As ArrayList

   '...

   Public Sub New()
        ' Esta llamada es completamente opcional y solo lo muestro para proveer mayor flexibilidad de código (al poder especificar un valor inicial).
       ' Me.New(String.Empty, String.Empty, Nothing, String.Empty)
   End Sub

   Public Sub New(ByVal str_ruta_e As String, ByVal str_ruta_archivo_val As String, ByVal str_rutas_array As ArrayList, ByVal str_archivo_salidas As String)
       str_ruta_archivo_entradas = str_ruta_e
       str_ruta_archivo_valorizado = str_ruta_archivo_val
       str_entradas_salidas_excluir = str_rutas_array
       str_ruta_archivo_salidas = str_archivo_salidas
   End Sub

End Class


...eso suponiendo que realmente quieras declarar un constructor por defecto sin parámetros, de lo contrario:

Código (vbnet) [Seleccionar]
' ...
Private Sub New()
End Sub

Public Sub New(ByVal str_ruta_e As String, ByVal str_ruta_archivo_val As String, ByVal str_rutas_array As ArrayList, ByVal str_archivo_salidas As String)
   str_ruta_archivo_entradas = str_ruta_e
   str_ruta_archivo_valorizado = str_ruta_archivo_val
   str_entradas_salidas_excluir = str_rutas_array
   str_ruta_archivo_salidas = str_archivo_salidas
End Sub
' ...


Es más, esas 70 lineas que ocupa la clase Archivos lo puedes simplificar a 15 o 20 lineas declarando auto-propiedades, en lugar de declarar propiedades con su getter y setter y su campo de apoyo o backing field, resulta innecesario en ese diseño de clase Archivos, pero bueno, eso no te lo he mostrado por que ahora mismo no recuerdo si fue a partir de Visual Studio 2015 / VB.NET 14.0 o cuando se implementó esta característica, o fue a partir de Visual Studio 2017 / VB.NET 15.




Cita de: Yaldabaot en 22 Marzo 2019, 22:25 PM
Curiosamente cuando lo depuro cómo les menciono arriba me dice que el objeto está correctamente insertado y tiene un valor pero a la hora de "jalarlo" no me sale nada, me preocupa porque necesito manipular ese objeto para el resto del proyecto, si uds saben algo se los agradecería demasiado.

Debes usar la propiedad ListBox.SelectedItem en vez de ListBox.SelectedValue, ya que no especificaste ningún miembro para la propiedad ListBox.ValueMember, normal que te salte una excepción de referencia nula...

Te muestro un ejemplo reducido:
Código (vbnet) [Seleccionar]
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
   Dim test As New Archivos("test", "test", New ArrayList(), "test")
   ListBox1.Items.Add(test)
End Sub

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
   Dim test As Archivos = DirectCast(Me.ListBox1.SelectedItem, Archivos)
   MsgBox(test .ToString)
End Sub


Saludos
#449
Buen intento, pero aun quedan unos dias para el April Fool's Day...

Además, todo el mundo sabe que los actores porno con sida están tan solicitados que ni siquiera tienen tiempo para subir fotos al Instagram.

Saludos!
#450
Cita de: ThunderCls en 24 Marzo 2019, 16:36 PM
solo comentaba el código citado

Hombre, no hacia falta ser tan "correcto" y dar este tipo de explicaciones (aunque se agradecen). Es obvio que tu respuesta no iba dirigida a mi, puesto que citabas al usuario Aincrad, pero simplemente al ver tu respuesta quise citar la tuya para comentar lo que comenté.

Cita de: ThunderCls en 24 Marzo 2019, 16:36 PM
el cual es bien ineficiente por lo que se puede ver

Totalmente de acuerdo yo también.

¡Un saludo!