Ẩn cửa sổ bảng điều khiển trong ứng dụng bảng điều khiển C #


105

Vấn đề là, tôi thực sự không muốn cửa sổ giao diện điều khiển hiển thị ... nhưng giải pháp sẽ được chạy. Quan điểm của tôi ở đây là, tôi muốn giữ cho ứng dụng chạy trong nền mà không có bất kỳ cửa sổ nào xuất hiện.


2
Bạn có thể cho chúng tôi biết thêm một chút thông tin về những gì ứng dụng phải làm không? Có vẻ như nó phải là một dịch vụ hoặc ứng dụng windows? Với một chút kiến ​​thức về mục đích của nó, chúng tôi có thể giúp được nhiều hơn và đề xuất cách tốt nhất để giải quyết vấn đề này.
Dave

Ứng dụng keylogger của nó. Tôi đã sử dụng cửa sổ dịch vụ nhưng nó không thể có được các bang trọng yếu phục vụ các cửa sổ
SOF tài khoản

Câu trả lời:


188

Thay đổi loại đầu ra từ Ứng dụng Bảng điều khiển sang Ứng dụng Windows . Điều này có thể được thực hiện trong Dự án -> Thuộc tính -> Ứng dụng trong Visual Studio:

văn bản thay thế


4
Cửa sổ bảng điều khiển nhấp nháy và quay trở lại. Làm cách nào để giữ cho ứng dụng chạy mà không có cửa sổ nào?
Người dùng SOF

Người dùng @SOF: Làm thế nào để bạn khởi động ứng dụng? Bằng cách nhấp đúp trong Explorer hoặc từ Start Menu?
Dirk Vollmar

tôi cũng đã đặt Console.ReadLine ();
Người dùng SOF

16
Loại bỏ Console.ReadLine. Sẽ không có ý nghĩa gì nếu bạn không có cửa sổ bảng điều khiển.
Dirk Vollmar

1
@ KarolŻurowski: Ý tưởng ở đây là bạn sẽ sử dụng điều này cho các ứng dụng cũng đi kèm với một số dạng giao diện người dùng (ví dụ: biểu tượng trong khay hệ thống) hoặc các ứng dụng thực hiện một tác vụ nhất định và sau đó tự động thoát khi hoàn thành. Nếu bạn không có, ứng dụng sẽ chạy trong nền cho đến khi đăng xuất / tắt máy hoặc cho đến khi nó bị giết một cách rõ ràng, ví dụ như sử dụng Trình quản lý tác vụ.
Dirk Vollmar 17/12/18

26

Thay đổi loại ứng dụng của bạn thành ứng dụng windows. Mã của bạn sẽ vẫn chạy, nhưng nó sẽ không có cửa sổ bảng điều khiển, cũng như cửa sổ cửa sổ tiêu chuẩn trừ khi bạn tạo.


2
Cửa sổ bảng điều khiển nhấp nháy và quay trở lại. Làm cách nào để giữ cho ứng dụng chạy mà không có cửa sổ nào?
Người dùng SOF

Bạn đảm bảo rằng nó không chấm dứt. Thực sự không có nhiều điều khác để nói nếu không có thêm thông tin. Chương trình làm gì? Nó chạy một cái gì đó trong một vòng lặp?
Lasse V. Karlsen

1
Thay đổi ứng dụng "Loại đầu ra" thành "Ứng dụng Windows" Phù hợp với tôi.
hellowahab

12

Thay vì Console.Readline/keybạn có thể sử dụng new ManualResetEvent(false).WaitOne()cuối cùng. Công việc này tốt cho tôi.


3

Có thể bạn muốn thử tạo một ứng dụng Windows Service . Nó sẽ chạy trong nền, không có bất kỳ giao diện người dùng nào.


3
Windows Service không thể có được chính ép các sự kiện
SOF tài

1
Các dịch vụ bị giới hạn nghiêm ngặt tùy thuộc vào ứng dụng của bạn, kể từ Windows Vista, chúng buộc phải chuyển sang Phiên 0 và do đó không thể thực hiện bất kỳ điều gì trong các phiên khác, chẳng hạn như hiển thị thông báo bật lên.
Matt

1
@Matt "không thể thực hiện bất cứ điều gì trong các phiên khác" là không hoàn toàn đúng. Đây là dự án mã cho Dịch vụ mở dấu nhắc lệnh quản trị trên màn hình của người dùng đã đăng nhập. codeproject.com/Articles/35773/…
Qodex

0

Thay đổi kiểu đầu ra từ Console Application để Windows Application ,

Và thay vì Console.Readline/keybạn có thể sử dụng new ManualResetEvent(false).WaitOne()ở cuối để tiếp tục chạy ứng dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.