Есть ли способ иметь процесс, созданный CreateProcess Open в другом окне?

StackOverflow https://stackoverflow.com/questions/3775229

Вопрос

Я хочу, чтобы иметь возможность открыть приложение GUI, используя CreateProcess в главном процессе и иметь отображение GUI в окне, в котором я создаю в пределах основного процесса. Кто-нибудь знает, как это достичь? Спасибо!

Это было полезно?

Решение

Если вы контролируете обои приложения, то да.

Это как отображение заставки на экране на панели управления экрана - панель управления прошла окно диалогов в командной строке, а файл .scr - это просто простое exe - создает его окно в детстве, используя данный HWND, как его родитель.

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

Опять же, это то, что вы можете легко попробовать: я написал тестовое приложение, которое создало пустое окно кадра, сделал FindWindow для копий блокнота и перераспределил окно блокнота, чтобы быть ребенком моей рамки.

Таким образом, он работает: в этом простом сценарии по крайней мере, но нет никакой гарантии: более сложные приложения, которые изменяют свои собственные стили кадров, могут очень хорошо разбиться, дополнительно иметь детское окно и родительское окно на разных потоках вводит возможность тупиков.

Другие советы

Нет, ты не можешь сделать это.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top