Tôi thường sử dụng giải pháp sau cho trường hợp này: tạo ngữ cảnh ứng dụng và sử dụng nó trong dự án của WinForm thay vì biểu mẫu.
Tạo một lớp ApplicationContext
public class MyApplicationContext : ApplicationContext
{
public MyApplicationContext()
{
}
void Exit(object sender, EventArgs e)
{
Application.Exit();
}
}
Trong Program.cs -> thay thế ban đầu Application.Run() gọi
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 frm = new Form1(); //remove if not needed
Application.Run(new MyApplicationContext());
}
Bởi vì bạn không thể hiện dưới hình thức nữa , bạn cần cung cấp các cách khác để đóng ứng dụng. I E. sử dụng khay hệ thống và sau đó gọi:
Application.Exit();
Lưu ý: Sử dụng ở trên (mà không bao giờ thể hiện dưới hình thức), bạn sẽ không bao giờ có được những sự kiện dưới hình thức thông thường như tải, đóng cửa, đóng cửa.
Bạn nhận ra Google Software Updater thực sự chạy dưới dạng Dịch vụ Windows trong ngữ cảnh của tài khoản Hệ thống Cục bộ? Một dịch vụ Windows được thiết lập để tự động khởi động với Local System Credentials có lẽ là những gì bạn cần. – kd7