Saya mencari informasi tentang cara menyembunyikan jendela konsol sendiri. Hebatnya, satu-satunya solusi yang bisa saya temukan adalah solusi hacky yang terlibat FindWindow()
untuk menemukan jendela konsol dengan judulnya . Saya menggali sedikit lebih dalam ke dalam API Windows dan menemukan bahwa ada cara yang jauh lebih baik dan lebih mudah, jadi saya ingin mempostingnya di sini agar orang lain dapat menemukannya.
Bagaimana Anda menyembunyikan (dan menampilkan) jendela konsol yang terkait dengan aplikasi konsol C # saya sendiri?
c#
console
console-application
Timwi
sumber
sumber
Begini caranya:
sumber
csproj
file secara manual. Visual Studio tidak memiliki GUI untuk melakukan ini, tetapi itu akan menghormati pengaturan jika Anda mengeditcsproj
file dengan benar.using System.Runtime.InteropServices;
const int SW_SHOWMINIMIZED = 2;
dan kemudianShowWindow(handle, SW_SHOWMINIMIZED);
Dengan cara ini konsol mulai tidak disembunyikan, hanya diminimalkan.Mengapa Anda memerlukan aplikasi konsol jika Anda ingin menyembunyikan konsol itu sendiri? =)
Saya merekomendasikan pengaturan jenis Output Proyek ke Aplikasi Windows daripada aplikasi Konsol. Ini tidak akan menampilkan jendela konsol, tetapi jalankan semua tindakan, seperti aplikasi Konsol lakukan.
sumber
TopShelf
memungkinkan Anda untuk menjalankanConsoles
sebagai layanan dan ini istirahat bahwaAnda dapat melakukan yang terbalik dan mengatur tipe output Aplikasi ke: Aplikasi Windows. Kemudian tambahkan kode ini ke awal aplikasi.
Kode ini akan menampilkan Konsol jika
showConsole
adatrue
sumber
Lihat posting saya di sini:
Tampilkan Konsol di Aplikasi Windows
Anda dapat membuat aplikasi Windows (dengan atau tanpa jendela) dan menampilkan konsol sesuai keinginan. Menggunakan metode ini jendela konsol tidak pernah muncul kecuali Anda secara eksplisit menunjukkannya. Saya menggunakannya untuk aplikasi mode ganda yang ingin saya jalankan dalam mode konsol atau gui tergantung pada bagaimana mereka dibuka.
sumber
"Hanya untuk menyembunyikan" Anda dapat:
Ubah jenis output dari Aplikasi Konsol ke Aplikasi Windows ,
Dan alih-alih
Console.Readline/key
Anda dapat menggunakannew ManualResetEvent(false).WaitOne()
di akhir untuk menjaga aplikasi tetap berjalan.sumber
Jika Anda tidak ingin bergantung pada judul jendela gunakan ini:
...
sumber
Jika Anda tidak memiliki masalah dalam mengintegrasikan aplikasi batch kecil, ada program yang disebut Cmdow.exe yang memungkinkan Anda untuk menyembunyikan jendela konsol berdasarkan judul konsol.
Tambahkan exe ke solusi, atur action build ke "Content", atur Copy to Output Directory sesuai keinginan Anda, dan cmdow akan menyembunyikan jendela konsol saat dijalankan.
Untuk membuat konsol terlihat lagi, Anda cukup mengubah Argumen
sumber