在我的应用程序中,我希望在我的进程启动时隐藏窗口TaskBar和StartMenuButton,并希望在退出时恢复它。
我可以这样做:
IntPtr startButtonHwnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, (IntPtr)0xC017, null);
IntPtr taskBarHwnd = FindWindow("Shell_TrayWnd", "");
ShowWindow(taskBarHwnd, 0);
ShowWindow(startButtonHwnd, 0);
这对我来说很好。 现在我看到一个案例,如果我的进程由于某种原因而崩溃或被用户强行杀死,我将无法恢复TaskBar。
是否有任何方法可以为这两个(崩溃和死亡)案件恢复它?
我还在与Windows Gadget进行交互,并且在我的应用程序中单击某个按钮时显示了一个Gadget窗口,因此我无法使用Form.TopMost = true
和& Screen.PrimaryScreen.Bounds
谢谢,
维克拉姆
答案 0 :(得分:2)
通过将恢复代码放在全局异常处理程序中,您可以满足大多数崩溃的需要。您可以通过设置unhandled exception handler
来执行此操作 AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
ShowWindow(taskBarHwnd, 0);
ShowWindow(startButtonHwnd, 0);
}
这不符合程序被杀的情况。