私は以下のクラスを使用してWindowsのタスクバーを非表示にしています。 私は以下のようなクラスを呼び出しています。アプリケーション終了がC#windowsアプリケーションでも発生しない
問題:アプリケーションを起動すると、タスクバーが完全に隠れています。 しかし、私はデバッグを停止してアプリケーションを終了すると、タスクバーは ではありません。アプリケーション出口が私のコードで起動していないことを意味します。 私はアプリケーションを閉じる方法は問わず、終了する前にタキシバー()を最後に に表示するような方法が必要です。
助けてください。ありがとう。
PROGRAM:
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();
}
}
CLASS:
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);
}
}
あなたは何を意味するか、「まだソリューション」? Taskbar.Show()は、TargetFormの実行が終了すると実行されます。それを考えると、面白そうに見える行はApp.Run行です。Application.Run(new TargetForm())のようになります。 –