Cerrar aplicación o proceso en ejecución con C# (C Sharp)

Visual C Sharp 2010 Express

Hoy os traigo algo muy sencillo pero que seguro que nos es muy útil en algún momento de programación como desarrolladores que somos.

Bueno se trata de forzar el cierre de una aplicación o proceso en ejecución en nuestro sistema usando C# (C Sharp)

Para ello utilizaremos el namespace System.Diagnostics

Empecemos mostrando el código de ejemplo y ahora lo explicamos un poco aunque no es necesario. Sigue leyendo

Seleccionar la ultima linea en un listbox usando C#

Hola de nuevo, hoy os traigo algo sencillo, se trata de poner el focus(termino en ingles) en la ultima linea del listbox o seleccionar la ultima linea de un listbox usando C#.

Como esto es muy sencillo de hacer voy a poner el código y a continuación explico lo que hace.

this.ListBox1.SelectedIndex = this.ListBox1.Items.Count - 1;

Esto lo que hace es contar el numero de lineas que tiene el listbox y restarle una unidad ya que el indice de lineas empieza en cero, una vez hecho esto la propiedad SelectedIndex coge el valor del indice y selecciona la ultima linea.

Esto es muy útil por ejemplo cuando estamos realizando un proceso y mostrando poco a poco los resultados en un listbox y necesitamos que la barra vaya avanzando hacia abajo para seguir viendo los últimos resultados del proceso.

Espero que os sirva. Un saludo a todos.

Codificación del archivo al leer un XML con XmlTextReader en C#

Cuando intentamos leer un archivo XML con XmlTextReader en C# y el archivo no proporciona el tipo de codificación nos saltará un error por contener caracteres extraños.

Todos los archivos XML indican el tipo de codificación con la siguiente linea: <?xml version="1.0" encoding="ISO-8859-1" ?>

Esta linea es la que utiliza XmlTextReader para saber como esta codificado el archivo, pero como ya he dicho podemos encontrarnos con el problema de que esta linea no se encuentre en el fichero y tengamos que indicarle a XmlTextReader que codificación tiene que usar.

Existen dos formas de hacer esto, una seria leer el fichero y volver a escribirlo añadiendo la linea de codificación o leer el fichero directamente e indicarle el tipo de codificación que debe utilizar.

Yo os voy a enseñar la segunda opción porque creo que es la más eficiente, os muestro como seria:

1
2
StreamReader leer_archivo = new StreamReader(direccion_archivo.Text, Encoding.Default);
XmlTextReader leer_xml = new XmlTextReader(leer_archivo);

Como veis es muy sencillo, leemos el archivo con StreamReader y le indicamos el tipo de codificación y después se lo pasamos a XmlTextReader.

Recordaros que debéis de utilizar el namespace System.IO, namespace System.Xml y el namespace System.Text

Espero que os sea de utilidad.

Cronometrar el tiempo de una tarea en c# (C Sharp)

Cuando programamos en C# hay veces que nos interesa medir el tiempo que va a tardar en realizarse una tarea o instrucción, para poder optimizar el código, o si la instrucción se repite varias veces en un bucle poder informar al usuario del tiempo que tardará en procesarse completamente la tarea del programa.

A continuación os muestro el código comentado:

Código C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Guardamos el tiempo antes del proceso a cronometrar
DateTime tiempoinicial = DateTime.Now;
 
//////////////////////////////////////////////////////////
//Aquí ponemos el conjunto de instrucciones a cronomentrar
//////////////////////////////////////////////////////////
 
//Guardamos el tiempo al finalizar todas las instrucciones
DateTime tiempofinal = DateTime.Now;
 
//Creamos el intervalo de tiempo con una resta
TimeSpan total = new TimeSpan(tiempofinal.Ticks - tiempoinicial.Ticks);
 
//Mostramos por pantalla el tiempo que ha tardado el proceso
System.Console.WriteLine(total.ToString());

Bueno queda decir que este código no funcionaria correctamente en cuanto tengamos subprocesos o hilos que se ejecuten paralelamente al proceso principal porque el código principal puede continuar mientras se procesa el secundario.

Espero que os sea de utilidad.

Obtener y mostrar la memoria RAM libre con C# (C Sharp)

La semana pasada os traje un código muy sencillo en C# con el que podíamos obtener el uso del procesador, pues bueno, hoy os traigo más de lo mismo. Con el código que os traigo hoy obtendremos y mostraremos la memoria RAM libre de nuestro ordenador.

Como ya comente en el otro manual para que nuestro código funcione deberemos hacer uso del namespace System.Diagnostics.

Código fuente:

using System;
using System.Threading;
using System.Diagnostics;
 
namespace MemoriaRamLibre
{
    class Program
    {
        static void Main(string[] args)
        {
            PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes");
 
            while (true)
            {
                Console.Clear();
                Console.WriteLine(ramCounter.NextValue() + "MB");
                Thread.Sleep(1000);
            }
        }
    }
}

Os adjunto el proyecto en Microsoft Visual C# Express para que podáis descargaros el código fuente. 

Un saludo, espero que os sea útil.