Archivo de la categoría: cosas técnicas

Posts relacionados con la programación o manejo o configuración de los oredenadores (computadores)

Te invito a mi fiesta de jubilación

Pues eso… que los de Velneo me han preparado un evento de jubilación para el próximo 18 de junio (29 de octubre de 2024), así que… lee y ¡apúntate!

 

¡Te invito a mi fiesta de jubilación!

 

Si no puedes ver el vídeo, pulsa en este enlace.

 

¡Ya me han jubilado oficialmente!

Y para que no se pierda nada de elGuille.info, y pueda seguir estando actualizado, lo dejo en buenas manos, las de Velneo.

Aprovecho para invitarte a que participes en mi evento de “jubilación” el próximo 18 de junio a las 17:00 (hora de Madrid).

NOTA:
La fecha del evento ha cambiado y la nueva será el próximo martes 29 de octubre a las 17:00 (hora de Madrid)

El Guille

 

Homenaje al legado de El Guille

Esta celebración la organizamos unos pocos, pero lleva la voz de miles: los que aprendimos y crecimos en la programación gracias al trabajo del Guille.

Ahora que se ha retirado, somos nosotros los que debemos corresponderle.

No había pasado ni una hora y el tema ardía en nuestros mensajes y foros: “El Guille se jubila, ¿lo habéis leído?”. A eso le siguieron las reflexiones personales: “yo empecé gracias a sus artículos”, “me ha salvado muchos proyectos”, “ha sido mi facultad de informática”…

De ahí, la conversación derivó a una pregunta evidente:

¿Qué podemos hacer para agradecerle todo lo que ha hecho?

Unos pocos programadores de Velneo, con el apoyo de la empresa, estamos preparando un evento de homenaje a Guillermo, que sienta nuestra gratitud y poder continuar juntos su legado.

Será un evento online interactivo, en el que podrás conversar con el Guille, el 18 de junio a las 17:00 (hora de Madrid).

¿Te sumas?

¡Quiero asistir!

 

Nos vemos.
Guillermo

Los bots de AI, tanto el de Bing como Bard, de Google, algunas veces son más tontos que inteligentes, aunque sea artificialmente

Pues eso… suelo usar tanto uno como otros, principalmente para hacer traducciones, ya que, cuando las hacen, parecen más correctas que usando las páginas de traducción de esas dos empresas (ya sabes: Bing de Microsoft y Bard de Google).

Algunas veces me ocurre que tanto uno como otro me dicen que lo sienten pero que no están capacitados para hacer la traducción, que use algunos de los servicios de traducción.

Normalmente, le doy a «nuevo tópico» le repito lo que quiero que traduzcan y lo traducen sin más… hoy el de Bing se me ha resistido y lo último que quería traducir se ha negado a pesar de intentarlo varias veces.

He cambiado a Bart y lo ha hecho sin rechistar (otras veces dice lo mismo que el de Bing, que no es una tarea para la que esté programado o algo así).

En fin… creo que aún les queda activar algunas neuronas a estos inteligentes artificiales.

Ya está, no me enrollo más, quería decirlo y lo he dicho 😉

Nos vemos.
Guillermo

Usar TaskDialog desde .NET Framework 4

Pues eso, que si quieres usar los cuadros de diálogo de la clase TaskDialog en tus aplicaciones de .NET (C# o Visual Basic) debes usar .NET 5 o superior, al menos para acceder a las clases directamente, pero si te pasa como me pasó ayer a mí que quería usarlo en una aplicación de .NET Framework 4.8.1, pues… sigue leyendo 😉

Esta captura (de la página explicativa de TaskDialog de WindowsControls) te muestra cómo son estos cuadros de diálogo que hicieron su aparición en Windows Vista.

Como ya te he dicho, .NET 5.0 y superior incluye la clase TaskDialog y sus derivados, pero en este caso voy a usar un paquete de NuGet, que está actualizado en este mismo año 2023: WindowsAPICodePack. La versión a la hora de escribir esta entrada en el blog es la v7.0.4 publicada el 26 de febrero de 2023 por Peter William Wagner, (aka Wagnerp).

Para usar las clases agrega ese paquete de NuGet a tu proyecto y ya lo tendrás disponible.

Aquí te pongo un código de ejemplo en Visual Basic para usar ese cuadro de diálogo de forma parecida a como usarías MessageBox.Show.

''' <summary>
''' Mostrar el cuadro de diálogo usando TaskDialog.
''' </summary>
''' <param name="header">El texto de cabecera.</param>
''' <param name="texto">El texto principal.</param>
''' <param name="caption">El texto de la ventana.</param>
''' <param name="buttons">Los botones a mostrar.</param>
''' <param name="icon">El icono a mostrar.</param>
''' <returns>Un valor de tipo TaskDialogResult.</returns>
Public Shared Function MostrarDialogo(header As String, texto As String, Optional caption As String = Nothing,
                                      Optional buttons As TaskDialogStandardButtons = TaskDialogStandardButtons.Ok,
                                      Optional icon As TaskDialogStandardIcon = TaskDialogStandardIcon.Information) As TaskDialogResult
    If String.IsNullOrEmpty(caption) Then
        caption = header
    End If

    Dim taskDialogMain As TaskDialog = New TaskDialog With {
        .Caption = caption,
        .InstructionText = header,
        .Text = texto,
        .Cancelable = True,
        .StandardButtons = buttons,
        .Icon = icon
    }
    Dim tdr As TaskDialogResult = taskDialogMain.Show()
    Return tdr
End Function

Y la forma de usar este método sería algo así:

If fPrincipal.MostrarDialogo("Cerrar VentasPlayaWin",
                             "¿Seguro que quieres cerrar la aplicación de VentasPlayaWin?",
                             Nothing,
                             Microsoft.WindowsAPICodePack.Dialogs.TaskDialogStandardButtons.Yes Or Microsoft.WindowsAPICodePack.Dialogs.TaskDialogStandardButtons.No,
                             Microsoft.WindowsAPICodePack.Dialogs.TaskDialogStandardIcon.Warning) = Microsoft.WindowsAPICodePack.Dialogs.TaskDialogResult.Yes Then

    Me.Close()
    fPrincipal.Current.Close()

End If

En este caso, fPrincipal es la clase donde está definido el método MostrarDialogo mostrado anteriormente.

No es tan intuitivo como las clases de .NET, ya que es más al estilo del API de Windows, pero… para salir del paso te puede servir y ya es cuestión tuya simplificar los botones, iconos, etc.

Si tengo tiempo prepararé un proyecto tanto para Visual Basic como C# con ejemplos de cómo usar las otras opciones de las notas al pie, enlaces, etc. Pero mientras tanto puedes ver los ejemplos de cómo usar esta API en GitHub: Windows-API-Code-Pack-1.1.

Los ejemplos concretos de TaskDialog para Visual Basic y C# están en esta carpeta: TaskDialogDemo.

Espero que te sea de utilidad. 😊

Ya sabes si quieres hacer un donativo para seguir manteniendo el blog del Guille, usa este enlace. Gracias 🙏🏻

Nos vemos.
Guillermo