Вывести несколько процессов на передние окна

Поэтому в настоящее время у меня есть приложение для нескольких мониторов на электронном движке, которое открывает другое окно с отдельным контентом на каждом мониторе. Он использует 2 отдельных процесса с одинаковыми именами для отображения этих окон "home".

Затем приложение можно использовать для запуска разных окон. Один из них называется "игра". Эта игра открывает окно стиля управления на главном мониторе, а затем актуальную игру на втором мониторе. Оба эти разных процесса называются "играми".

В настоящее время у нас есть небольшое консольное приложение на C#, которое можно вызвать и передать строку, чтобы попытаться вывести эти приложения на передний план, как показано ниже:

class Program
{
    [DllImport("user32.dll")]
    private static extern IntPtr SetForegroundWindow(IntPtr hWnd);

    [DllImport("user32.dll")]
    private static extern IntPtr GetForegroundWindow();

    static void Main(string[] args)
    {
        BringToFront(args[0]);
    }

    private static void BringToFront(string title)
    {
        // Get a handle to the Calculator application.
        Process[] processes = Process.GetProcessesByName(title);

        if (processes.Length > 1)
        {
            foreach(Process process in processes)
            {
                IntPtr mainWindowHandle = process.MainWindowHandle;
                if (mainWindowHandle == GetForegroundWindow()) return;
                SetForegroundWindow(mainWindowHandle);
            }

        }
    }


}

Проблема в том, что это только когда-то выводит 1 окно впереди, а не оба. Я исследовал это и обнаружил, что это происходит из-за правил, окружающих SetForegroundWindow, и, если я не ошибаюсь, когда мы устанавливаем первое окно переднего плана, нам тогда не разрешают устанавливать любые другие как консольное приложение / процесс, который вызвал консольное приложение больше не процесс переднего плана.

Есть ли способ сделать вывод 2 отдельных окон на передний план с помощью консольного приложения aC#?

0 ответов

Другие вопросы по тегам