c#顯示隱藏的窗體和托盤中的程式
將程式最小化到托盤已經是最常用的操作,但在C#中憑藉 Form1.Visible=true; 抑或是Form1.TopMost=true; 只能將窗體顯示在工作列中,而不能將窗體直接顯示給使用者,這無疑是糟糕的使用者體驗。為了實現上述目的,我們需要藉助於win32函式:
#region win32函式
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpSpecifiedClassName, string lpWindowName);
[DllImport("user32.dll ", SetLastError = true)]
public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
[DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
public const int SW_RESTORE = 9;
public static IntPtr formhwnd;
#endregion
IntPtr frm = Form1.Handle; //得到窗體控制代碼
ShowWindow(frm, 9); //顯示窗體
SwitchToThisWindow(frm, true); //切換到窗體