Tengo una aplicación de consola en C# y deseo que el usuario no pueda verla.Cómo ocultar una aplicación de consola en C#
¿Cómo puedo hacer eso?
Tengo una aplicación de consola en C# y deseo que el usuario no pueda verla.Cómo ocultar una aplicación de consola en C#
¿Cómo puedo hacer eso?
compilarlo como una aplicación de Windows Forms. Entonces no mostrará ninguna interfaz de usuario, si no abre explícitamente Windows.
Puede PInvoke una llamada a FindWindow() para obtener un identificador para la ventana y luego llamar a ShowWindow() para ocultar la ventana O Comience su aplicación desde otra usando ProcessStartInfo.CreateNoWindow
No tengo idea de si eso funciona, pero seguro que es gracioso. :) Llame a ShowWindow() para ocultarlo ...;) – noocyte
Aunque funciona. –
En lugar de la solución hacky 'FindWindow()', preferiría mucho [recuperar el identificador de la consola correctamente] (http://stackoverflow.com/questions/3571627) ... – Timwi
Parece que no desea una aplicación de consola, sino una aplicación de GUI de Windows que no abre una ventana (visible).
Crear una aplicación de consola "MyAppProxy" con el siguiente código, y poner MyAppProxy en la puesta en marcha dir,
public static void main(string[] args)
{
Process p = new Process("MyApp");
ProcessStartUpInfo pinfo = new ProcessStartUpInfo();
p.StartupInfo = pinfo;
pinfo.CreateNoWindow = true;
pinfo.ShellExecute = false;
p.RaiseEvents = true;
AutoResetEvent wait = new AutoResetEvent(false);
p.ProcessExit += (s,e)=>{ wait.Set(); };
p.Start();
wait.WaitOne();
}
Es posible que necesite para fijar ciertos artículos aquí como yo no comprobar la corrección del código, puede que no compila porque algunos nombres de propiedad pueden ser diferentes, pero espero que entiendas la idea.
Esta es la manera de hacerlo. El secreto es la propiedad CreateNoWindow. –
Crea un servicio wcf y hospédelo según tu necesidad.
Creo que esto es engañoso y está completamente en la dirección incorrecta. Los usos para una aplicación oculta podrían ser completamente diferentes a un servicio wcf. – ericosg
La mejor manera es comenzar el proceso sin ventana.
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "echo Hello!";
//either..
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//or..
p.StartInfo.CreateNoWindow = true;
p.Start();
Ver otras soluciones probables -
Toggle Process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden at runtime
y,
Bring another processes Window to foreground when it has ShowInTaskbar = false
En ProjectProperties establecidos Tipo de salida como de aplicaciones de Windows.
para ocultar una Applicatin consola en C# cuando nada funciona usan este código:
[DllImport("kernel32.dll")]
public static extern bool FreeConsole();
Lugar FreeConsole() en cualquier parte del código, lo coloqué en el Init(), y la línea de comandos es oculto.
Esto parece ser un poco más complicado que solo hacer eso. Cuando separa el proceso de su consola utilizando FreeConsole(), la consola finaliza. Debe recordar terminar el proceso cuando el trabajo esté terminado, ya que no hay una consola que lo haga por usted, a menos que me falta algo (déjeme saber si lo hago). Aún así, un método muy limpio. –
¿Es un servicio que desea ejecutar en segundo plano? –
Sí, pero no quiero ejecutarlo como servicio, quiero ejecutarlo como .exe – menacheb
¿Cómo comenzaría la aplicación? – noocyte