Как восстановить приложение с тем же размером?

#c# #user32

#c# #пользователь32

Вопрос:

Когда у меня открыто приложение, и я пытаюсь открыть его снова, я хочу восстановить запущенное приложение с фактическим размером.

Используемый код такой:

 [DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetForegroundWindow(IntPtr hWnd);

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

private const int SW_SHOW = 5;

public static void SetForegroundMyWindow(IntPtr windowHandle)
{
    SetForegroundWindow(windowHandle);
    ShowWindow(windowHandle, SW_SHOW);
}
  

С помощью этого кода, когда окно развернуто, приложение отображается с размером без увеличения.
Только с SetForegroundWindow приложение не отображается, когда оно свернуто.

Как получить мое окно с фактическим размером?

Комментарии:

1. Вы пометили это как C #. Итак, мой вопрос в том, должны ли вы использовать p / invokes здесь или вы можете использовать свойство настроек приложения и привязать размер окна к настройкам?

2. @pinkfloydx33, я использую p/invokes

3. Я вижу, что вы это делаете, но должны ли вы?

4. Вы пробовали этот SetWindowPos метод? pinvoke. в сети есть образцы

5. У меня такая же проблема со свернутыми окнами, я их не вижу.