У меня такая ситуация. У меня есть дескриптор окна приложения. Мне нужно его активировать. Я пробовал все эти функции, но не всегда работает. (В большинстве случаев это не работает в первый раз, и мне придется вручную щелкнуть по нему, чтобы активировать его. Вторая попытка и далее работает нормально) Причина, по которой я Я делаю это потому, что у меня есть код, написанный в событии Form.Activate формы, которую мне нужно выполнить. Приложение - это приложение с одним экземпляром. Когда создается новый экземпляр, он сначала проверяет наличие любого другого процесса. Если он найден, дескриптор старого процесса передается этим функциям, чтобы пользователь мог работать со старой формой. Приложение вызывается из другого приложения C. [DllImport ("user32.dll")] общедоступный статический внешний int ShowWindow (IntPtr hWnd, int nCmdShow);
[DllImport("user32.dll")]
public static extern int SetForegroundWindow(IntPtr hWnd);
[DllImport("user32")]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);