Navegador web en VB. NET (3)

Navegador web usando la versión moderna del control WebBrowser, el control WebView, que renderiza las páginas usando el motor de Microsoft Edge en lugar de hacerlo con el motor de Internet Explorer, en Visual Studio 2017

En 2 ejercicios anteriores (1 y 2) se desarrolla una aplicación de formularios de Windows construida alrededor de un objeto de la clase WebBrowser que permite mostrar en su interior páginas web y también interactuar con las páginas visitadas. Se trata de una clase muy madura que apareció en NET Framework 2, fácil de utilizar y con muchos textos de ayuda en Internet.
Pero tiene el inconveniente de que, por su antigüedad, utiliza el motor de renderizado de Internet Explorer, navegador actualmente obsoleto incluso para la propia Microsoft. En teoría renderiza con la versión de Internet Explorer que tengamos instalada en el sistema pero en la práctica parece mostrar las características de Internet Explorer 7 salvo que se manipule el registro para forzar a nuestra aplicación a utilizar el motor de la versión más moderna que es la 11 a condición de que la tengamos instalada (las instrucciones para hacerlo están en el artículo 2 de los referidos al principio del texto).

Continuar leyendo «Navegador web en VB. NET (3)»

Microsoft Access en Java (2)

Conectar con una base de datos de Microsoft Access mediante el controlador JDBC UCanAccess, emitir sentencias SQL a la base de datos y mostrar los resultados, ejecutar el programa desde línea de comandos junto con las dependencias, crear archivos de comando para ejecutar el programa; ejercicio de Java para consola

Desde Java 8 la conexión JDBC-ODBC ya no se incluye en Java. Existen algunos controladores JDBC propietarios para conectar con MS Access pero el proyecto UCanAccess está activo actualmente, es open source y proporciona un controlador JDBC generado sobre código de Jackcess.
UCanAccess funciona bien y es sencillo de utilizar. El dato más remarcable es el de las dependencias que requiere que en la versión actual 4.0.1 son: ucanaccess-4.0.1, hsqldb-2.3.1, jackcess-2.1.6, commons-logging-1.1.1 y commons-lang-2.6.

Jackcess a diferencia de UCanAccess es una librería de código Java diseñada para leer y escribir bases de datos de MS Access que no es un controlador JDBC sino una implementación directa de las características disponibles para interactuar con bases de datos de MS Access. Su licencia es del tipo Apache License.

Continuar leyendo «Microsoft Access en Java (2)»

Microsoft Access en Java (1)

Conectar con una base de datos de Microsoft Access por medio del puente JDBC-ODBC configurando el origen de los datos en el panel de control ODBC de 32 bits mostrando los registros obtenidos desde consultas SQL con Java 7

Requisitos previos

El puente JDBC-ODBC ha dejado de estar disponible en Java 8 por lo que para poder utilizarlo hay que tener Java 7 o versión anterior. Aunque se trata de un método obsoleto y poco eficiente de acceder a bases de datos de Microsoft Access desde Java, todavía hay usuarios que lo utilizan y que no desean migrar sus programas a controladores propios del lenguaje, libres (ucanaccess, jackcess…) o comerciales.

En Windows 10 están disponibles en las herramientas administrativas los paneles de control ODBC. Hay 2 versiones, para 32 y para 64 bits. Microsoft Access usa un controlador de 32 bits por lo que se necesita instalar Java 7 para 32 bits y abrir el panel ODBC de 32 bits, sin estos 2 requisitos falla el acceso a las bases de datos (BD) desde Java por este método. El panel ODBC se puede encontrar en las herramientas administrativas o tecleando en el menú Inicio > Buscar «Orígenes de datos…» que muestra las 2 opciones:

  • Orígenes de datos ODBC (32 bits)
  • Orígenes de datos ODBC (64 bits).
Continuar leyendo «Microsoft Access en Java (1)»

Versión de Windows desde C#

Obtener datos sobre el nombre del producto, la versión, el número de compilación y la arquitectura de 32 o 64 bits del sistema operativo mediante clases de .NET o el registro de Windows, en C# .NET

En ocasiones puede ser necesario que un programa o librería acceda a datos de la versión de Windows instalada en el sistema. Este ejercicio presenta 2 formas de hacerlo, utilizando clases de .NET Framework o leyendo esa información directamente desde el registro de Windows. Se presenta el ejercicio en C# pero al final está el enlace de descarga a la aplicación completa con el añadido de la versión en Visual Basic .NET.

Continuar leyendo «Versión de Windows desde C#»

WP local con Desktop Server

Instalar un sitio WordPress local en el Mac con Desktop Server Limited (muy fácil)

ServerPress tiene una aplicación llamada Desktop Server que actualmente constituye la forma más sencilla y rápida de instalar un sitio WordPress (WP en adelante) en el Mac. Hay 2 versiones, gratuita y de pago. La versión gratuita se llama Desktop Server Limited (DSL en adelante) y contiene todo lo necesario para el usuario que desea tener su sitio en local para hacer todo tipo de pruebas antes de subirlas al sitio de Internet. Puedes descargarlo desde la página de Serverpress.com (busca el enlace Get Started For FREE).

Nota: DSL utiliza XAMPP que existe como programa de software libre (es una distribución de Apache que contiene MariaDB, PHP y Perl). XAMPP depende de Apache Friends desde cuya página se puede descargar (proyecto para promocionar el servidor web Apache y hogar del proyecto XAMPP). Tiene versiones para Macintosh, Windows y Linux.
XAMPP proviene del acrónimo X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. Existe también la posibilidad de instalar la distribución especifica y exclusiva de cada sistema operativo: MAMP para Macintosh, LAMP para Linux y WAMP para Windows.

Continuar leyendo «WP local con Desktop Server»

DataTable desde Access en ASP .NET

Leer una base de datos de Microsoft Access, presentar los datos en un objeto DataTable de ASP .NET, generar por código los encabezados y las columnas y mostrar la ruta a la base de datos en una etiqueta con diseño personalizado, en C# y VB .NET

Microsoft tiene un artículo titulado «How to retrieve and display records from an Access database by using ASP.NET, ADO.NET and Visual C# .NET» para .NET Framework 1. Basado en ese artículo se presenta este ejercicio que consiste en leer una base de datos de Microsoft Access y presentar los datos en un objeto DataTable de ASP .NET. El ejercicio tiene 2 versiones: C# y VB, y una base de datos llamada Clientes.accdb con una única tabla llamada ClientesTb y 5 campos: Id, Nombre, Apellidos, Cargo y Teléfono.

Se comenta el ejercicio en C# y al final se proporciona el código completo tanto para C# como para VB .NET, las diferencias entre ambos son pequeñas.

Continuar leyendo «DataTable desde Access en ASP .NET»

Cambiar LookAndFeel en Java

Cambiar la decoración LookAndFeel de un programa Java eligiendo entre 3 opciones: Nimbus, Metal y Motif, utilizando el método setLookAndFeel de la clase UIManager

Java permite modificar el aspecto de sus ventanas y cuadros de diálogo. Se definen 3 decoraciones básicas que son:

  • Metal: decoración que se adapta al sistema operativo, por ejemplo en Windows su aspecto se basa en ese sistema y en macOS su aspecto es Aqua
  • Nimbus: decoración más moderna y elegante, aparecida en Java 6
  • Motif: decoración más ruda que era la que se usaba por defecto en sistemas Unix.
Continuar leyendo «Cambiar LookAndFeel en Java»

Foto desde un botón en Java

Mostrar imágenes al pulsar botones en una ventana JFrame que implementa la interfaz ActionListener, detectar la pulsación del botón como un evento de acción (ActionEvent) y llamar a la acción prevista con el método actionPerformed,en Java

Introducción: responder a las acciones del usuario

Las aplicaciones han de responder a las acciones que realiza el usuario, por ejemplo: cerrar la ventana al pulsar un botón. Es necesario poder detectar las acciones de usuario y convertirlas en acciones de programa. Java dispone de varias formas de implementar este funcionamiento. En este ejercicio se mostrarán algunas de ellas. Todas se basan en el uso de Interfaces. Las Interfaces son clases “prefabricadas” con propósitos definidos
Cada Interface contiene declaraciones de métodos (nombre del método, lista de argumentos y tipo de retorno) pero estos métodos no están implementados (carecen de cuerpo) y deben ser desarrollados. Todos los métodos de las Interfaces son public. Las Interfaces también pueden declarar constantes (public final static).
En Java no existe la herencia múltiple como tal: una clase no puede heredar (extends) de más de una clase. Pero una clase puede implementar más de una Interface, ésta es una manera de tener herencia múltiple. En la clase que implementa una Interface han de ser sobrescritos (override) todos los métodos declarados en la Interface.

Continuar leyendo «Foto desde un botón en Java»

Regiones GDI+ en VB .NET

Capturar la ventana completa del formulario con o sin decoración (área cliente) o una región que se corresponde con un control PictureBox usando GDI+ mediante objetos Graphics de origen y destino y la función BitBlt que combina 2 mapas de bits en uno solo, en Visual Studio 2017

En un artículo anterior se mostraba cómo aplicar un recorte circular a la imagen de un control PictureBox para que la imagen se vea redondeada. He ampliado el ejercicio continuando con GDI (Graphics Device Interface). GDI es es uno de los tres componentes de la interfaz de usuario de Microsoft Windows. Trabaja junto con el núcleo y la API de Windows.

Este ejercicio añade la funcionalidad de captura de pantalla usando métodos de las clases de GDI+ explicando cómo hacer para capturar la ventana de la aplicación completa (con bordes, barras de herramientas, de menús y de scroll, etc,), la ventana sin decoración (lo que se llama área cliente del formulario) o una región específica de la ventana, la del control PictureBox de imagen redondeada, y guardar los resultados como imagen JPG en el directorio del ensamblado. Estas imágenes JPG se muestran en un formulario nuevo.

Continuar leyendo «Regiones GDI+ en VB .NET»

Formularios con forma en VB .NET

Aplicar regiones a un formulario usando objetos GraphicsPath.AddLine y GraphicsPath.AddEllipse para recortar el área del formulario y cambiar la forma de la ventana, en Visual Studio 2017 con VB

Utilizando objetos de la clase GraphicsPath y aplicando regiones de recorte es sencillo modificar la forma de la ventana de un formulario. Podemos darle prácticamente cualquier aspecto pero, por sencillez del código, en este ejercicio nos restringiremos a 3 formas, círculo, rombo y polígono, usando regiones de recorte con el aspecto deseado.

GraphicsPath del espacio de nombres System.Drawing.Drawing2D representa una serie de líneas y curvas conectadas. La base del ejercicio es:

  • ventana redondeada: en el evento Paint de un PictureBox o del formulario se dibuja sobre GraphicsPath una región de recorte de forma circular con el método AddEllipse y se convierte en la región visible del formulario
  • ventana romboidal y poligonal: en el evento Load del formulario se van añadiendo líneas definidas por su punto x.y de inicio y de final con coordenadas absolutas calculadas respecto a la ventana visible del formulario. Cada segmento de línea se añade con GraphicsPath.AddLine(Int32, Int32, Int32, Int32) a la figura actual.
Continuar leyendo «Formularios con forma en VB .NET»