我正在使用下面的類來隱藏和顯示窗口任務欄。 我打電話給下面的班級。應用程序退出甚至不在C#窗口應用程序中觸發
問題:當我啓動應用程序時,任務欄完全隱藏。 但是當我通過停止調試退出應用程序時,任務欄 沒有顯示出來。我的意思是應用程序退出不在我的代碼中觸發。 我需要這樣的一種方式,無論我如何關閉應用程序,它都會在退出之前不斷地顯示tashbar()。
請幫忙。謝謝。
方案:
static class Program
{
[STAThread]
static void Main()
{
Taskbar.Hide();
Form1 TargerForm = new Form1();
Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
Application.EnableVisualStyles();
Application.Run(TargerForm);
}
static void Application_ApplicationExit(object sender, EventArgs e)
{
Taskbar.Show();
}
}
類:
public class Taskbar
{
[DllImport("user32.dll")]
public static extern int FindWindow(string className, string windowText);
[DllImport("user32.dll")]
public static extern int ShowWindow(int hwnd, int command);
public const int SW_HIDE = 0;
public const int SW_SHOW = 1;
public int _taskbarHandle;
protected static int Handle
{
get
{
return FindWindow("Shell_TrayWnd", "");
}
}
public Taskbar()
{
_taskbarHandle = FindWindow("Shell_TrayWnd", "");
}
public static void Show()
{
ShowWindow(Handle, SW_SHOW);
}
public static void Hide()
{
ShowWindow(Handle, SW_HIDE);
}
}
你是什麼意思,「仍然沒有解決」?當TargetForm完成運行時,Taskbar.Show()將執行。想想看,看起來有趣的一行是App.Run行,它應該看起來像Application.Run(新的TargetForm()) – 2009-07-21 15:31:11