У меня такая ситуация.У меня есть дескриптор окна приложения.Мне нужно активировать его.Я перепробовал все эти функции, но не всегда работает (в большинстве случаев он не работает в первый раз, и мне придется вручную нажимать на него, чтобы активировать. Вторая попытка работает нормально) Причина, по которой яЯ делаю это потому, что у меня есть код, написанный в событии Form.Activate той формы, которую мне нужно выполнить.Приложение представляет собой приложение одного экземпляра.Когда создается новый экземпляр, он сначала проверяет существование любого другого процесса. Если он найден, дескриптор старого процесса передается этим функциям, чтобы пользователь мог работать со старой формой.Приложение вызывается из другого приложения на языке C.[DllImport ("user32.dll")] public static extern 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);