About Francisco Vicente

C# developer, especialista en desarrollo con protocolos de comunicación ccTalk, CCNet y BNR API for .NET para dispositivo de pago.

MockupScreens

Desarrollar aplicaciones bajo un entorno Agile requiere, en algunos casos, de herramientas que permitan una comunicación fácil y rápida con el equipo de desarrollo y con todos los miembros involucrados.

Hace mucho buscaba una herramienta que me permitiera construir prototipos o maquetas de las pantallas que queríamos desarrollar. En especial buscaba algo para aplicaciones Windows.

Nosotros por temas de agilismo solemos utilizar el mejor invento del mundo que es una simple pizarra y rotuladores de colores, luego para compartirlo simplemente hacemos fotos…

Pero necesitábamos algo para poder compartir con el área comercial, con el product owner, algo mas formal que la imagen de una pizarra o unos papeles escrito a lápiz con propuestas de pantallas.

Descubrí este excelente programa MockupScreens, es muy fácil para dibujar pantallas, especialmente para aplicaciones Windows. No necesitas ser un programador y la verdad que mis colegas comerciales están muy contentos con esta aplicación.

Os recomiendo el programa, podéis descargar la versión de evaluación, que es valida por 30 días.
Más información en:
http://www.mockupscreens.com/

Terminar proceso remotamente

Estos días estoy testeando una aplicación que en ocasiones se queda pillada y necesito detenerla desde el Administrador de tareas.

Como estaba en otro ordenador se me ocurrió hacer algún programa en C# que permita cerrar una aplicación remotamente.

En un post anterior os he compartido como iniciar un proceso o aplicación remotamente, ahora en este ejemplo veremos como cerrarla.

Claro que este forma de cerrar un programa es una mala practica, pero lo interesante es lo fácil que se puede hacer con C#. Solo necesitamos el nombre de la aplicacion, IP del ordenador remoto, usuario y contraseña.

El código es el siguiente:


string proceso = string.Empty;
ConnectionOptions loConnectionOptions = null;

proceso = "ccTalkTest.exe";
loConnectionOptions = new ConnectionOptions();
loConnectionOptions.Username = txtUser.Text;
loConnectionOptions.Password = txtPassword.Password;

ManagementScope scope = new ManagementScope(@"\\" + txtIP.Text + @"\root\cimv2", loConnectionOptions);

SelectQuery query = new SelectQuery("select * from Win32_process where name = '" + proceso + "'");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
    foreach (ManagementObject process in searcher.Get()) { process.InvokeMethod("Terminate", null); }
}

Ejecutar aplicación remotamente

Surgió la necesidad de iniciar una aplicación remotamente. Se trata de un ejecutable que quería iniciar desde otro ordenador. Son estas cosas que te gusta hacer para optimizar tú trabajo, en tareas repetitivas.

Entonces me puse a investigar, quería hacer algo simple, muy rápido, solo necesitaba indicar el IP, el usuario y contraseña del ordenador y desde luego el nombre del .exe.

Os comparto el código, para que lo utilicéis cuando lo necesitéis.

Process p = new Process();

p.StartInfo.FileName = @"PsExec.exe";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;

p.StartInfo.Arguments = @"\\" + txtIP.Text + " -u " + txtUser.Text 
                        + " -p " + txtPassword.Password + " -i 0 -d "
                        + "\"" + @"C:\\Test\MeyApp.exe" + "\"";

p.Start();
var ended = p.WaitForExit(60 * 1000);

if (!ended)
{
    throw new Exception("No se ha podido iniciar el proceso.");
}

using (StreamReader sr = p.StandardOutput)
{
    string buffer = sr.ReadToEnd();
}