JASoft.org

Cómo detectar un cambio de sesión o que el usuario bloquea la sesión en Windows

Cómo detectar un cambio de sesión o que el usuario bloquea la sesión en Windows
En ocasiones resulta muy útil detectar desde tu aplicación Windows el hecho de que el usuario actual se esté conectando o desconectando a la sesión actual, o simplemente que se haya bloqueado el escritorio. Por ejemplo, si el usuario tiene el escritorio bloqueado es una tontería mostrarle mensajes o globos de notificación ya que no va a haber nadie para verlos ¿no? ¿Cómo podemos detectar estas circunstancias? La API de .NET dispone de un espacio de nombres especial llamado Microsoft.Win32 que contiene clases que encapsulan funcionalidad atada al sistema operativo Windows. Dentro de este espacio de nombres existe una clase llamada SystemEvents que ofrece multitud de eventos estáticos que nos permiten responder a diversas cuestiones que ocurren en el sistema operativo: cambio de los ajustes de pantalla, agregar o quitar fuentes, que el equipo se está apagando o suspendiendo, cambios de preferencia de usuario, cambio de la hora del sistema, etc... Es realmente útil, y utiliza por debajo... [Más]

La manera correcta de actualizar contadores de rendimiento personalizados

La manera correcta de actualizar contadores de rendimiento personalizados
Esta es una pregunta interesante que ha surgido en el curso de fundamentos de la plataforma .NET que tutelo on-line en campusMVP. Se trata de una pregunta sencilla pero con una sutileza interesante respecto a la creación de contadores de rendimiento para Windows desde .NET. Cuando creamos un contador personalizado en .NET incrementamos o disminuimos su valor para actualizar la medición que queremos reflejar en el contador de rendimiento del sistema. Algunos ejemplos de contadores que podemos crear son: uno que indique el número de usuarios actualmente autenticados en nuestra aplicación Web, uno que indique el número de compras realizadas en una tienda on-line, el promedio de consultas lanzadas contra un almacén de datos, etc, etc... Tienen mucha utilidad ya que nos permiten monitorizar con las herramientas propias de Windows el desempeño de nuestras aplicaciones, tanto en tiempo real como haciendo trazas para un análisis posterior. El caso es que todos ellos implican generalmente e... [Más]

Como incluir cambios de línea en los Tooltips

Como incluir cambios de línea en los Tooltips
Hoy como es huelga general en España, un truco rapidito para que no nos tachen de esquiroles :-P Los Tooltips son esas etiquetas flotantes que aparecen cuando dejas el cursor del ratón unos instantes parado encima de algún control de tu aplicación, y que normalmente te dan información contextual interesante sobre el mismo: Son muy útiles en las aplicaciones Windows Forms, pero ¿Cómo podemos hacer para que un Tooltip se muestre como el de la figura anterior, es decir, en varias líneas? Lo primero que cabría pensar es que podríamos poner un “\n” como se hace en las constantes de cadena de C#, así: NotifyIcon1.Text = “DOTNET4\nInternet access”; Pero no funciona y veríamos realmente ese “\n” en el texto. La solución es concatenarle en cada cambio de línea la constante: Environment.NewLine con lo que quedaría algo así: NotifyIcon1.Text = “DOTNET4” + Environment.NewLine + “Internet access”; ¡Listo! Con esto conseguirás Tooltips como los de la figura superior, mucho más cómodo... [Más]

Resolver el error “No se puede encontrar el tipo” al cargar un formulario con un control propio

Resolver el error “No se puede encontrar el tipo” al cargar un formulario con un control propio
Yo no programo demasiado para Windows Forms, ya sabéis que lo mío es más la Web. Pero últimamente estoy trabajando a los ratos en un proyecto que tienen una parte de visualización para escritorio hecha con esta tecnología. Como soy partidario de reutilizar al máximo, siempre encapsulo la funcionalidad todo lo que puedo, incluyendo funcionalidad de la interfaz de usuario. Por eso en este trabajo, tengo varios controles de usuario listos para arrastrar y soltar en cualquier formulario que los requiera. El caso es que tras haber trasteado bastante con la interfaz, de repente algunos formularios me empezaron a fallar, mostrándome un error como el de la figura (yo trabajo con todo en inglés, incluidos los nombres de clases  y variables):  (la parte difusa lleva el nombre del control que no se carga y su espacio de nombres) A pesar de que en el código del diseñador del formulario todo parecía estar bien y se reconoce el tipo del control y a pesar de que si ejecutas la aplicación... [Más]

Uso de la caché de ASP.NET 4.0 fuera de aplicaciones Web - Perfiles de .NET

Uso de la caché de ASP.NET 4.0 fuera de aplicaciones Web - Perfiles de .NET
La caché de ASP.NET es una maravilla. Permite almacenar en memoria (o en otra ubicación, ya que es extensible) datos costosos de obtener y que no caduquen de inmediato. De esta forma las siguientes veces que debamos utilizarlos en la misma aplicación podremos obtenerlos desde la caché sin necesidad de volver a calcularlos o generarlos. Además la caché de ASP.NET ofrece un montón de características avanzadas que van más allá del simple almacenamiento. Por ejemplo podemos establecer caducidades de la información tanto en un determinado momento en el futuro, si no se utiliza tras un periodo, haciendo que unas informaciones dependan del valor de otras o creando dependencias de ciertos elementos externos (como un archivo, una consulta en la base de datos o una clave del registro). Esto último es de especial interés, pues nos brinda la posibilidad de hacer cosas bastante complicadas sin apenas código. Por ejemplo, si nuestra aplicación depende de la información almacenada en un archivo en e... [Más]

Habilitar auto-completar en controles de Windows Forms

Habilitar auto-completar en controles de Windows Forms
Se trata éste de un truco muy útil y  muy sencillo, si bien muchos programadores desconocen. En la versión 2.0 de la plataforma .NET algunos controles para interfaz de usuario con Windows Forms (en concreto los cuadros de texto y los combos, tanto los normales como los que van dentro de los ToolStrip), permiten mostrar a los usuarios sugerencias acerca de los datos que están introduciendo de una manera muy sencilla. Esta caraterística no estaba presente en la versión 1.x de la plataforma. Para ello basta con seleccionar el control en cuestión y ajustar sus propiedades AutoCompleteMode y AutoCompleteSource (ver figura lateral). La primera nos sirve para indicar de qué modo se hara el auto-rellenado. Puede ser simplemente una sugerencia desplegada por debajo (estilo navegador Web), que el texto se vaya autocompletando automáticamente dentro del control o ambas cosas. La propiedad AutoCompleteSource sirve para indicar de dónde se sacarán las sugerencias de rellenado automático. P... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico