C # Konsol Uygulamasında Konsol Penceresini Gizle


106

Mesele şu ki, konsol penceresinin görünmesini gerçekten istemiyorum ... ama çözüm çalışıyor olmalı. Buradaki amacım, uygulamanın arka planda herhangi bir pencere açmadan çalışmasını sağlamak istiyorum.


2
Uygulamanın ne yapması gerektiği konusunda bize biraz daha bilgi verebilir misiniz? Bir servis veya Windows uygulaması olması gerektiği gibi görünüyor? Amacı hakkında biraz bilgi sahibi olursak, çok daha fazla yardımcı olabilir ve bunu çözmenin en iyi yolunu önerebiliriz .
Dave

Keylogger uygulaması. Windows hizmetini kullandım ancak Windows hizmetinde anahtar durumları alamıyorum
SOF Kullanıcısı

Yanıtlar:


188

Çıktısı türünü değiştirme Konsol Uygulaması için Windows Başvuru . Bu, Visual Studio'da Proje -> Özellikler -> Uygulama altında yapılabilir :

alternatif metin


4
Konsol penceresi yanıp söner ve geri döner. Uygulamanın hiç pencere olmadan çalışmasını nasıl sağlayabilirim?
SOF Kullanıcısı

@SOF Kullanıcısı: Uygulamayı nasıl başlatırsınız? Explorer'a çift tıklayarak veya Başlat Menüsünden?
Dirk Vollmar

Ayrıca Console.ReadLine ();
SOF Kullanıcısı

16
Kaldır Console.ReadLine. Konsol pencereniz yoksa hiç mantıklı değil.
Dirk Vollmar

1
@ KarolŻurowski: Buradaki fikir, bunu bir tür UI (örneğin, sistem tepsisindeki bir simge) ile birlikte gelen uygulamalar veya belirli bir görevi yerine getiren ve tamamlandığında otomatik olarak çıkan uygulamalar için kullanmanızdır. İkisine de sahip değilseniz, uygulama, oturumu kapatana / kapatana kadar veya örneğin Görev Yöneticisi kullanılarak açıkça öldürülene kadar arka planda çalışacaktır.
Dirk Vollmar

26

Uygulama türünüzü bir Windows uygulaması olarak değiştirin. Kodunuz yine de çalışır, ancak siz oluşturmadıkça konsol penceresi veya standart pencere penceresi olmayacaktır.


2
Konsol penceresi yanıp söner ve geri döner. Uygulamanın hiç pencere olmadan çalışmasını nasıl sağlayabilirim?
SOF Kullanıcısı

Bitmeyeceğinden emin ol. Daha fazla bilgi olmadan söylenecek pek bir şey yok. Program ne yapıyor? Bir döngüde bir şey çalıştırıyor mu?
Lasse V. Karlsen

12

Sonunda Console.Readline/keysenin yerine kullanabilirsin new ManualResetEvent(false).WaitOne(). Bu benim için iyi çalışıyor.


3

Belki bir Windows Service uygulaması oluşturmayı denemek istersiniz . Herhangi bir kullanıcı arayüzü olmadan arka planda çalışacaktır.


3
Windows Hizmeti, Tuşa basılan olayları alamıyor
SOF Kullanıcısı

1
Hizmetler, uygulamanıza bağlı olarak ciddi şekilde sınırlıdır, Windows Vista'dan itibaren Oturum 0'a zorlanırlar ve bu nedenle diğer oturumlarda açılır pencere mesajları gibi hiçbir şey gerçekleştiremezler.
Matt

1
@Matt "diğer oturumlarda hiçbir şey yapamaz" tamamen doğru değildir. Burada, oturum açmış kullanıcının masaüstünde bir yönetici komut istemi açan Hizmet için bir kod projesi verilmiştir. codeproject.com/Articles/35773/…
Qodex

1

Çıktısı türünü değiştirme Konsol Uygulaması için Windows Başvuru ,

Ve yerine Console.Readline/keykullanabileceğiniz new ManualResetEvent(false).WaitOne()uygulama çalışır durumda tutmak için sonunda.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.