実行中のアプリケーションを切り替えるc#アプリケーションを作成したいと思います。WindowsのAlt+Tabのような正確な機能を実行する必要があります。Windows APIの関数を使用SetForegroundWindow()
していますが、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
パラメータを試してみましたが、同じ結果になりました。