domingo, 31 de enero de 2010

Firefox y Yo Rompimos: Una historia de la vida real

Dolorosamente Firefox y yo debemos separar nuestros caminos... Ya Firefox no es igual, ha cambiado y he de decir que para mal. Aquí les dejo el diálogo de mi triste ruptura:

YO: Firefox, tenemos que hablar
Firefox(FF): Claro, hablemos
YO: Firefox, las cosas han cambiado y lastimosamente he de decir que no ha sido para bien.
FF: Porqué?
YO: Últimamente he notado que cada vez que te llamo, tardas demasiado en reponder, me dejas colgado y luego como después de 3 minutos me respondes. Ese silencio me duele. Además, estás consumiendo 40MB de mi limitada cantidad de memoria, y no tengo ningun add-on más que FireBug, así que no tienes excusa. Por si fuera poco, cada cierto tiempo me dejas colgado y el sistema me dice Firefox no responde...
FF: Si, sé que he fallado...
YO: Lo siento Firefox, creo que es momento de separar nuestros caminos
FF: Yo no lo considero así
YO: FF, no hagas esto más difícil. Tengo que confesarte que conocí a otro navegador, se llama Chrome.
FF: Yo sabía que uds dos se traían algo
YO: Chrome es todo lo que siempre necesité y más...
FF: Estoy de acuerdo contigo, creo que es momento de separar nuestros caminos
YO: Que bueno que lo comprendas. Igual seguiremos siendo amigos, cuando requiera de FireBug, te llamaré... Y si tu necesitas que programe un plugin, también llámame con confianza.
FF: Me parece bien, quedemos como amigos.
YO: Por favor, no me preguntes más si deseo que seas mi navegador predeterminado... Creo que ya sabrás la respuesta.
FF: Entiendo
YO: Adiós
FF: Adiós

(Cualquier parecido con una conversación de la vida real, no es coincidencia :P )
 

viernes, 15 de enero de 2010

Obtener el UserName y el Dominio de un Proceso

Para realizar esta (a primera vista) sencilla operación, en .NET, resulta no ser tan sencillo. Después de Googlear un rato (Dios bendiga Google), encontré la solucion, que es utilizando un Query y el ManagementObjectSearcher. Creo que también hay maneras de invocarlo con llamadas al API, pero siendo sincero, si quisiera llamar a un API, entonces mejor seguiría usando VB6 ;). Como siempre, aquí les dejo código de ejemplo.



Aunque si lo que necesitan es el Usuario y el Dominio del Proceso actual, es muchísimo más fácil y eficiente usar el Enviroment.UserName y el Environment.UserDomainName.

jueves, 7 de enero de 2010

Usos de MethodInvoker

La Clase MethodInvoker es un Delegate muy útil. Es muy sencilla de utilizar y permite hacer muchas cosas interesantes, como llamar a un método o incluso definir una serie de instrucciones a utilizar. Aquí hay algún código de ejempo: