[DllImport("shell32.dll", CharSet = CharSet.Auto)]
private static extern int IsImmersiveProcess(IntPtr hProcess);
[DllImport("kernel32.dll")]
private static extern IntPtr GetCurrentProcess();
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr GetModuleHandle(string lpModuleName);
[DllImport("user32.dll")]
private static extern int ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int SW_SHOWNORMAL = 1;
private const int SW_MINIMIZE= 6;
//返回桌面
private void button2_Click(object sender, EventArgs e)
{
//以下三句代码是回到桌面的功能,调用了Windows系统命令
Type shellType = Type.GetTypeFromProgID("Shell.Application");
object shellObject = System.Activator.CreateInstance(shellType);
shellType.InvokeMember("ToggleDesktop", System.Reflection.BindingFlags.InvokeMethod, null, shellObject, null);
//以上三行是通用的,以下三行是针对win7系统的返回桌面操作
//需要引入System.Runtime.InteropServices
IntPtr hWnd = GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName);
ShowWindow(hWnd, SW_MINIMIZE);
SetForegroundWindow(hWnd);
Thread.Sleep(1000);
this.TopMost = true;
}