открыть .exe в качестве окна в форме MDI? - PullRequest
2 голосов
/ 02 декабря 2009

Я хотел создать программу, которая позволяла бы мне открывать экземпляры уже существующей программы (у меня есть только exe) в виде окон внутри (я верю, что это называется mdi)

Это то, что я мог сделать? Кто-нибудь может указать мне пример?

Спасибо

Ответы [ 3 ]

2 голосов
/ 02 декабря 2009

Может быть, это ответ, который вы ищете здесь . Это можно сделать ... посмотрите в примере по данной ссылке.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 02 декабря 2009

Что ж, после запуска приложения и сохранения его PID, вы можете начать мониторинг создаваемых окон, либо через CBTHook, либо просто используя таймер и GetWindows, чтобы найти, когда окно верхнего уровня создается PID в вопрос.

Затем вы можете использовать SetParent, чтобы сделать это окно дочерним для вашего MDIChild (я сомневаюсь, что вы можете сделать его вашим MDIChild напрямую).

Это должно помочь тебе. С чем вы столкнетесь после этого, я действительно не знаю. Я предполагаю, что вы должны соотнести любое движение вашего приложения или внешнего приложения так, чтобы три окна выглядели слипшимися ...

Майбо, вы можете удалить заголовок из внешнего приложения (Get / SetWindowsLong). Это могло бы заставить его выглядеть лучше ...

0 голосов
/ 02 декабря 2009

Когда Windows запускает программу, ее родителем является окно рабочего стола.

Если бы вы могли каким-то образом манипулировать этим, это может сработать.

Однако я сомневаюсь, что это возможно, так как, почему я хочу разрешить вам запускать мое приложение в вашем окне? Особенно МДИ? Кроме того, выполнение в дочернем окне не совсем то же самое, что и в «главном» окне.

Сказав, что есть приложение (не могу вспомнить его название OH), которое размещает отдельные приложения на вкладках. Довольно изящно, если вы не на Windows 7. Люди на форуме Business of Software могут помочь вам найти его.

...