我想编写 c# 应用程序,它将在一些正在运行的应用程序之间切换。它应该执行与 Windows 中的 Alt+Tab 相同的功能。我使用SetForegroundWindow()
来自 Windows API 的函数,但如果应用程序在 Windows 任务栏上最小化,它就无法正常工作。所以我添加了ShowWindow()
功能,但有一个问题是我无法以用户设置的原始大小显示窗口。
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
示例:我最大化窗口,然后将其最小化到任务栏中。当我打电话时:
ShowWindow(processWindowHandle, ShowWindowCmd.SW_NORMAL);
WindowsApi.SetForegroundWindow(processWindowHandle);
窗口未最大化。我尝试使用ShowWindowCmd.SW_NORMAL
参数但结果相同。