Los números de 2012


Los duendes de las estadísticas de WordPress.com prepararon un informe sobre el año 2012 de este blog.

Aquí hay un extracto:

19,000 people fit into the new Barclays Center to see Jay-Z perform. This blog was viewed about 86.000 times in 2012. If it were a concert at the Barclays Center, it would take about 5 sold-out performances for that many people to see it.

Haz click para ver el reporte completo.

Verificar múltiples instancias de una aplicación ejecutándose – WPF


Algunas veces, necesitamos crear una aplicación en WPF y que esta se ejecute una sola vez, y que si llegamos a abrir la aplicación, dando doble clic sobre el ejecutable o sobre el acceso directo, y en ese momento ya hay una instancia de dicha aplicación, nos aparezca un mensaje indicándonos que la aplicación ya se esta ejecutando y evitando tener múltiples instancias de la aplicación.

Para hacerlo, nos dirigimos a la clase App.xaml y en el code behind, verificamos si ya existe el constructor de la clase App, sino, lo creamos:

public App()
{
 try
 {
  // Verifica si ya existe una instancia de la aplicación ejecutándose
  if (AplicacionEjecutandose())
  {
   MessageBox.Show("Ya hay otra aplicación ejecutándose", "Título Aplicación",
MessageBoxButton.OK, MessageBoxImage.Information);
   Application.Current.Shutdown(-1); //Cerrar la aplicación
  }
 }
 catch (Exception ex)
 {
  MessageBox.Show(ex.Message);
 }
}

Y el código del método AplicacionEjecutandose, que verifica si ya existe una instancia o proceso de la aplicación

private bool AplicacionEjecutandose()
{
 Boolean Flag = false;
 try
 {
  System.Diagnostics.Process[] ProcessObj = null; ;
  String ModualName = System.Diagnostics.Process.GetCurrentProcess().MainModule.ModuleName;
  String ProcessName = System.IO.Path.GetFileNameWithoutExtension(ModualName);

  // Obtiene todas las intancias del proceso, ejecutándose en el computador local
  ProcessObj = System.Diagnostics.Process.GetProcessesByName(ProcessName);

  if (ProcessObj.Length > 1) // si ya hay una aplicación, devolvemos true
  {
   Flag = true;
  }
 }
 catch (Exception ex)
 {
  throw new Exception(ex.Message);
 }
return Flag;
}

El método anterior, obtiene el nombre del modulo y del proceso de la aplicación que se esta ejecutando, luego obtiene en la lista de los procesos de equipo local, el total de aplicaciones con dicho nombre, que se están ejecutando en el equipo loca, si es mayor a 1, significa que la aplicación ya se esta ejecutando, por lo que devolvemos true.
Luego mostramos un mensaje para avisar que ya se esta ejecutando y terminamos el proceso de la aplicación.

Obtener el template o la plantilla de un Control XAML – WPF


En algunos casos cuando estamos trabajando con XAML, queremos modificar la presentación de un control, como por ejemplo, modificar un Scrollbar, para personalizarlos.

El problema esta en que no podemos iniciar desde cero para crear el template o la plantilla del control, hay una solución muy sencilla, y es extraer el XAML por defecto que tienen los controles, luego ya podemos modificarlos a nuestro gusto.

La forma de hacerlo es:

– Arrastrar el control a la ventana

– Luego guardar el Template del control en un archivo xml

Para hacerlo, creamos un proyecto, agregamos un botón y un ScrollBar, nombramos el ScrollBar como scroll, en el Click del botón agregamos lo siguiente:

private void Button1_Click(object sender, RoutedEventArgs e)
{
 using (System.IO.FileStream aStream = new System.IO.FileStream("C:\\template.xml", System.IO.FileMode.Append))
 {
 System.Windows.Markup.XamlWriter.Save(scroll.Template, aStream);
 }
}

Sigue leyendo

Menú Acordeón deslizante – WPF


El menú que voy a mostrar es algo diferente al menú acordeón que se encuentra en el Wpf Toolkit, el menú va a tener el siguiente comportamiento:

– Se tienen varios paneles o bordes, los cuales van a tener algún contenido, todos los bordes están dentro de un StackPanel

– El StackPanel tendrá un ancho definido

– El ancho de cada borde depende del total de Controles Border que hay en el stack Panel y del tamaño del StackPanel

– La orientación del StackPanel es Horizontal, por lo tanto es un menú Horizontal, aunque puede ser cambiado a Vertical

– Los bordes van a tener un  estado inicial que es “cerrado” y no se verá todo su contenido

– Cuando el Mouse pase por encima o entre en el contenido de algún borde, este se abrirá, cambiando su ancho a un tamaño definido más grande que el tamaño que tienen cuando esta “cerrado”, los demás bordes se cerraran aún más para ocupar el espacio sobrante, en total la sumatoria del espacio del borde seleccionado abierto y los demás bordes cerrados dará el tamaño del StackPanel.

– Si el Mouse se pasa a otro borde, se cerrará el borde seleccionado anteriormente y se repetirá el mismo efecto con el borde seleccionado.

– Si el Mouse no esta seleccionando ningún borde, estos estarán cerrados, ocupando todo el tamaño del StackPanel.

En acción el Menú se verá así:

Sigue leyendo

Desinstalar Windows 8 y Recuperar la Instalación de Windows 7


Este proceso solo sirve cuando se instaló el Windows 8 Customer Preview  en la misma partición donde se encontraba el Windows 7 instalado, esto me ocurrió por el afán de instalar la versión Customer Preview de Windows 8 y no seguir las instrucciones😦, debido a esto y por no querer perder los datos, busqué en Internet y encontré lo siguiente:

También solo funciona cuando al instalar el Windows 8 se escogió la opción de guardar datos anteriores, para saber si existen los datos anteriores, ir al Explorador de Windows y buscar la carpeta Windows.old en el disco C o en el disco donde está el Sistema Operativo

Sigue leyendo