Tôi có một chương trình cần đặt trong nền và khi người dùng kết nối với phiên RDP, nó sẽ thực hiện một số thiết lập môi trường rồi khởi chạy chương trình. Khi chương trình được đóng, nó sẽ thực hiện một số dịch vụ vệ sinh và đăng xuất phiên.Cách tạo chương trình không hiển thị trong Alt-Tab hoặc trên thanh tác vụ
Cách hiện tại tôi đang làm là tôi có máy chủ đầu cuối khởi chạy ứng dụng này. Điều này được xây dựng dưới dạng ứng dụng biểu mẫu cửa sổ để ngăn cửa sổ bảng điều khiển hiển thị:
public static void Main()
{
//(Snip...) Do some setup work
Process proc = new Process();
//(Snip...) Setup the process
proc.Start();
proc.WaitForExit();
//(Snip...) Do some housecleaning
NativeMethods.ExitWindowsEx(0, 0);
}
Tôi thực sự thích điều này vì không có mục nào trên thanh tác vụ và không có gì hiển thị trong tab alt. Tuy nhiên để làm điều này tôi đã từ bỏ quyền truy cập vào các chức năng như void WndProc(ref Message m)
Vì vậy, bây giờ tôi không thể nghe các tin nhắn cửa sổ (Giống như WTS_REMOTE_DISCONNECT
hoặc WTS_SESSION_LOGOFF
) và không có xử lý để sử dụng cho bool WTSRegisterSessionNotification(IntPtr hWnd, int dwFlags);
Tôi muốn mã của tôi mạnh mẽ hơn sẽ làm việc dọn dẹp nếu người dùng đăng xuất hoặc ngắt kết nối khỏi phiên trước khi đóng chương trình.
Bất kỳ đề nghị nào về cách tôi có thể ăn bánh của mình?
Đã thử rằng, nó xuất hiện trong Alt-Tab. Đó là giải pháp sao lưu của tôi nhưng tôi thực sự thích một giải pháp không hiển thị trong menu tab alt. –
Nếu bạn đã đặt làm ứng dụng Windows này, ứng dụng sẽ không hiển thị trong Alt-Tab. –
Tôi đã thêm một dòng sẽ thực hiện công việc này (và giữ cửa sổ ra khỏi danh sách Alt-Tab). – MusiGenesis