Domanda

Ho un'applicazione console che sto usando per eseguire i lavori pianificati attraverso le finestre di pianificazione. Tutte le comunicazioni da / per l'applicazione è in e-mail, la registrazione degli eventi, registri del database. C'è un modo per eliminare la finestra di console da venire?

È stato utile?

Soluzione

Certo. Costruirlo come un app WinForms e mai mostrare il proprio modulo.

Basta essere attenti, perché allora non è davvero una console app più, e ci sono alcuni ambienti in cui non sarà in grado di utilizzarlo.

Altri suggerimenti

Borrowed da MSDN ( testo del link ):

using System.Runtime.InteropServices;

...
      [DllImport("user32.dll")]
      public static extern IntPtr FindWindow(string lpClassName,string lpWindowName);

      [DllImport("user32.dll")]
      static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

...

         //Sometimes System.Windows.Forms.Application.ExecutablePath works for the caption depending on the system you are running under.
         IntPtr hWnd = FindWindow(null, "Your console windows caption"); //put your console window caption here
         if(hWnd != IntPtr.Zero)
         {
            //Hide the window
            ShowWindow(hWnd, 0); // 0 = SW_HIDE
         }


         if(hWnd != IntPtr.Zero)
         {
            //Show window again
            ShowWindow(hWnd, 1); //1 = SW_SHOWNORMA
         }

E 'un hack, ma il seguente post sul blog descrive come è possibile nascondere la finestra della console:

http: //expsharing.blogspot .com / 2008/03 / NascondiMostra-console-window-in-net-black.html

Pianificare l'operazione per l'esecuzione come un utente diverso da quello del conto e non sarà possibile ottenere una finestra popping up. . .

È sufficiente configurare l'operazione pianificata come "Run se l'utente è connesso o meno".

Perché non rendere l'applicazione di un servizio di Windows?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top