我有一個程序需要坐在後臺,當用戶連接到RDP會話時,它將執行一些環境設置,然後啓動程序。當程序關閉時,它將進行一些管家和註銷會話。如何使程序不出現在Alt-Tab或任務欄上
我現在這樣做的方式是我有終端服務器啓動這個應用程序。這是建立一個Windows窗體應用程序,以保持控制檯窗口從顯示出來:
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);
}
我真的很喜歡這一點,因爲有任務欄中沒有項目,沒有什麼顯示ALT標籤了。但是爲了做到這一點,我放棄了訪問函數,如void WndProc(ref Message m)
所以現在我不能聽windows消息(如WTS_REMOTE_DISCONNECT
或WTS_SESSION_LOGOFF
),並沒有一個句柄用於bool WTSRegisterSessionNotification(IntPtr hWnd, int dwFlags);
我希望我的代碼更健壯,所以它如果用戶在關閉程序之前註銷或斷開會話,將進行清理。
任何關於如何可以吃我的蛋糕和吃它的建議?
試過了,它出現在Alt-Tab中。這是我的備份解決方案,但我真的很喜歡那種在alt-tab菜單中不顯示的解決方案。 – 2010-05-07 22:18:47
如果您將此設置作爲Windows應用程序,它不應顯示在Alt-Tab中。 – 2010-05-07 22:33:27
我添加了一行可以使這項工作(並保持窗口不在Alt-Tab列表中)。 – MusiGenesis 2010-05-07 23:01:37