Есть ли способ иметь процесс, созданный CreateProcess Open в другом окне?
-
04-10-2019 - |
Вопрос
Я хочу, чтобы иметь возможность открыть приложение GUI, используя CreateProcess в главном процессе и иметь отображение GUI в окне, в котором я создаю в пределах основного процесса. Кто-нибудь знает, как это достичь? Спасибо!
Решение
Если вы контролируете обои приложения, то да.
Это как отображение заставки на экране на панели управления экрана - панель управления прошла окно диалогов в командной строке, а файл .scr - это просто простое exe - создает его окно в детстве, используя данный HWND, как его родитель.
Захватывание ранее написанного окна верхнего уровня и заставляя его существовать в своем собственном кадре, однако не очень хорошо поддерживается.
Опять же, это то, что вы можете легко попробовать: я написал тестовое приложение, которое создало пустое окно кадра, сделал FindWindow для копий блокнота и перераспределил окно блокнота, чтобы быть ребенком моей рамки.
Таким образом, он работает: в этом простом сценарии по крайней мере, но нет никакой гарантии: более сложные приложения, которые изменяют свои собственные стили кадров, могут очень хорошо разбиться, дополнительно иметь детское окно и родительское окно на разных потоках вводит возможность тупиков.
Другие советы
Нет, ты не можешь сделать это.
Что-то, что может работать ... Вы можете начать процесс, хотя, а затем используя ручку окна, примените ряд изменений в окне, чтобы снизить кадр. Затем вы можете переместить его в положение какого-либо другого управления размещением в вашем окне, и когда у вас есть события перемещения / изменения размера, которые вы также разместите этот дочерний окно.