private static void RestartShellComponents() { // Use Windows API to restart the shell try { // Start a new explorer instance (which will recreate the taskbar) Process.Start("explorer.exe"); } catch { } }
[DllImport("user32.dll")] private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId); refresh taskbar
using System; using System.Diagnostics; using System.Runtime.InteropServices; public class TaskbarRefresher { // Find and kill the taskbar window [DllImport("user32.dll", SetLastError = true)] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); out uint lpdwProcessId)
private const uint WM_CLOSE = 0x0010; private const uint WM_QUIT = 0x0012; private const uint WM_CLOSE = 0x0010
[DllImport("user32.dll")] private static extern bool PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);