Sembunyikan Jendela Konsol di Aplikasi Konsol C #


105

Masalahnya, saya benar-benar tidak ingin jendela konsol muncul ... tetapi solusinya harus berjalan. Maksud saya di sini adalah, saya ingin tetap menjalankan aplikasi di latar belakang, tanpa ada jendela yang muncul.


2
Dapatkah Anda memberi kami sedikit lebih banyak informasi tentang apa yang harus dilakukan aplikasi? Sepertinya itu harus menjadi layanan atau aplikasi windows? Dengan sedikit pengetahuan tentang tujuannya, kami akan dapat lebih banyak membantu dan menyarankan cara terbaik untuk menyelesaikannya.
Dave

Aplikasi keylogger-nya. Saya menggunakan layanan windows tetapi tidak bisa mendapatkan status kunci dalam layanan windows
Pengguna SOF

Jawaban:


188

Ubah tipe keluaran dari Aplikasi Konsol ke Aplikasi Windows . Ini dapat dilakukan di bawah Proyek -> Properti -> Aplikasi di Visual Studio:

teks alt


4
Jendela konsol berkedip dan kembali. Bagaimana cara agar aplikasi tetap berjalan tanpa jendela sama sekali?
Pengguna SOF

@SOF Pengguna: Bagaimana Anda memulai aplikasi? Dengan mengklik dua kali di Explorer atau dari Start Menu?
Dirk Vollmar

saya juga meletakkan Console.ReadLine ();
Pengguna SOF

16
Hapus Console.ReadLine. Tidak masuk akal jika Anda tidak memiliki jendela konsol.
Dirk Vollmar

1
@ KarolŻurowski: Idenya di sini adalah bahwa Anda akan menggunakan ini untuk aplikasi yang juga datang dengan beberapa bentuk UI (misalnya ikon di baki sistem) atau aplikasi yang melakukan tugas tertentu dan kemudian keluar secara otomatis setelah selesai. Jika Anda tidak memiliki keduanya, aplikasi akan berjalan di latar belakang hingga logoff / shutdown atau hingga secara eksplisit dimatikan, misalnya menggunakan Task Manager.
Dirk Vollmar

26

Ubah jenis aplikasi Anda menjadi aplikasi windows. Kode Anda akan tetap berjalan, tetapi tidak akan memiliki jendela konsol, atau jendela jendela standar kecuali Anda membuatnya.


2
Jendela konsol berkedip dan kembali. Bagaimana cara agar aplikasi tetap berjalan tanpa jendela sama sekali?
Pengguna SOF

Anda memastikan itu tidak berhenti. Tidak banyak yang bisa dikatakan tanpa informasi lebih lanjut. Apa program itu? Apakah itu menjalankan sesuatu dalam satu lingkaran?
Lasse V. Karlsen

1
Mengubah Aplikasi "Jenis Keluaran" menjadi "Aplikasi Windows" Berhasil untuk saya.
hellowahab

12

Alih-alih Console.Readline/keyAnda bisa menggunakan new ManualResetEvent(false).WaitOne()akhirnya. Ini bekerja dengan baik untuk saya.


3

Mungkin Anda ingin mencoba membuat aplikasi Layanan Windows . Ini akan berjalan di latar belakang, tanpa UI apa pun.


3
Layanan Windows tidak bisa mendapatkan peristiwa penekanan tombol
SOF User

1
Layanan sangat terbatas tergantung pada aplikasi Anda, pada Windows Vista mereka dipaksa masuk ke Sesi 0, dan dengan demikian tidak dapat melakukan apa pun di sesi lain seperti menampilkan pesan popup.
Matt

1
@Matt "tidak dapat melakukan apa pun di sesi lain" tidak sepenuhnya benar. Berikut adalah proyek kode untuk Layanan yang membuka prompt perintah admin di desktop pengguna yang masuk. codeproject.com/Articles/35773/...
Qodex

0

Ubah tipe keluaran dari Aplikasi Konsol ke Aplikasi Windows ,

Dan Alih-alih Console.Readline/keyAnda dapat menggunakan new ManualResetEvent(false).WaitOne()di bagian akhir untuk menjaga aplikasi tetap berjalan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.