Nascondi la finestra della console nell'applicazione console C #


105

Il fatto è che non voglio che venga visualizzata la finestra della console ... ma la soluzione dovrebbe essere in esecuzione. Il punto qui è che voglio mantenere l'applicazione in esecuzione in background, senza che venga visualizzata alcuna finestra.


2
Puoi darci qualche informazione in più su cosa dovrebbe fare l'applicazione? Sembra che dovrebbe essere un servizio o un'applicazione Windows? Con un po 'di conoscenza del suo scopo, saremmo in grado di aiutare molto di più e suggerire il modo migliore per risolverlo.
Dave

La sua applicazione keylogger. Ho utilizzato il servizio Windows ma non è possibile ottenere gli stati chiave nel servizio Windows
Utente SOF

Risposte:


188

Cambiare il tipo di uscita da applicazione console di Applicazione Windows . Questa operazione può essere eseguita in Progetto -> Proprietà -> Applicazione in Visual Studio:

testo alternativo


4
La finestra della console lampeggia e torna indietro. Come faccio a mantenere l'applicazione in esecuzione senza alcuna finestra?
Utente SOF

@SOF User: come si avvia l'applicazione? Facendo doppio clic in Explorer o dal menu Start?
Dirk Vollmar

ho anche messo Console.ReadLine ();
Utente SOF

16
Rimuovi il file Console.ReadLine. Non ha alcun senso se non hai una finestra della console.
Dirk Vollmar

1
@ KarolŻurowski: L'idea qui è che lo useresti per le app che sono dotate anche di una qualche forma di interfaccia utente (ad esempio un'icona nella barra delle applicazioni) o per le app che eseguono una determinata attività e poi escono automaticamente al termine. In caso contrario, l'app verrà eseguita in background fino alla disconnessione / spegnimento o fino a quando non viene esplicitamente terminata, ad esempio utilizzando Task Manager.
Dirk Vollmar

26

Cambia il tuo tipo di applicazione in un'applicazione Windows. Il tuo codice verrà comunque eseguito, ma non avrà una finestra della console, né una finestra standard di Windows a meno che non ne crei una.


2
La finestra della console lampeggia e torna indietro. Come faccio a mantenere l'applicazione in esecuzione senza alcuna finestra?
Utente SOF

Assicurati che non si interrompa. Non c'è davvero molto altro da dire senza ulteriori informazioni. Cosa fa il programma? Funziona qualcosa in un ciclo?
Lasse V. Karlsen

1
La modifica del "Tipo di output" dell'applicazione in "Applicazione Windows" ha funzionato per me.
hellowahab,

12

Invece di Console.Readline/keypoterlo usare new ManualResetEvent(false).WaitOne()finalmente. Questo funziona bene per me.


3

Forse vuoi provare a creare un'applicazione di servizio Windows . Verrà eseguito in background, senza alcuna interfaccia utente.


3
Il servizio Windows non può ottenere eventi premendo il tasto
Utente SOF

1
I servizi sono fortemente limitati a seconda dell'applicazione, a partire da Windows Vista sono forzati nella Sessione 0 e quindi non possono eseguire nulla in altre sessioni come mostrare messaggi popup.
Matt

1
@Matt "non può eseguire nulla in altre sessioni" non è del tutto vero. Ecco un progetto di codice per un servizio che apre un prompt dei comandi di amministrazione sul desktop dell'utente connesso. codeproject.com/Articles/35773/…
Qodex

0

Cambiare il tipo di uscita da applicazione console di Applicazione Windows ,

E invece di Console.Readline/keypuoi usare new ManualResetEvent(false).WaitOne()alla fine per mantenere l'app in esecuzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.