Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Запуск чужой программы как дочернее окно своей


Автор: samec 27.11.2008, 09:31
Добрый день. Есть стороняя программа, работающая в полноэкранном режиме. Возможно ли из своего приложения запустить эту программу так, чтобы она стала дочерним окном нашего MDI окна?

Автор: CodeMonkey 27.11.2008, 10:23
Что вы понимаете под полноэкранный режимом? Это, типа, как игра что-ли? На полный экран, DirectX там и всё такое?

Автор: samec 27.11.2008, 11:34
Да, запустить таким образом нужно игру.

Автор: CodeMonkey 27.11.2008, 11:52
А сама игра поддерживает ли работу в окне?
Работа на полный экран и работа в окне - это два существенно разных режима, которые по-разному инициализируются и по-разному обрабатываются. Чтобы переключиться из одного режима в другой нужно проводить инициализацию заново.

Автор: samec 27.11.2008, 16:29
программа, если её запустить и нажать Alt+Enter переходит к работе в окне.
Мне же надо, чтобы, к примеру, нажал я на кнопку в скоём приложении - и эта программа запустилась сразу в окошке, а не на весь экран. Причем, желательно, чтобы это окошко было дочерним окном MDI окна.

Автор: CodeMonkey 27.11.2008, 16:56
Цитата(samec @  27.11.2008,  16:29 Найти цитируемый пост)
Мне же надо, чтобы, к примеру, нажал я на кнопку в скоём приложении - и эта программа запустилась сразу в окошке, а не на весь экран

Если сама программа не поддерживает запуск изначально в окне, то ничего такого вы не сможете сделать. Максимум, что можно - запустить в FullScreen, затем отправить ей Alt + Enter для переключения в окно, а затем пристыковать к своему окну.

Автор: samec 27.11.2008, 20:26
чтож, очень жаль...

Автор: samec 27.11.2008, 22:26
а как тогда это делают программы типа VMware ???

Автор: Virtuals 28.11.2008, 06:02
samec,  smile  smile  smile 
VMware это компьютер, и ей пофиг на все программы smile 
ты еще спроси как такое делает RAdmin smile 

Автор: CodeMonkey 28.11.2008, 10:40
...VMware - это Матрица. К сожалению, никому нельзя рассказать, что такое Матрица - каждый должен увидеть это сам...      smile 

Автор: MetalFan 28.11.2008, 12:30
а почему бы не провести эксперимент по след.алгоритму:
1. Запуск игры
2. Получение главного окна игрового приложения
3. Присвоение парентом этого окна формы из своего приложения...

Автор: samec 28.11.2008, 16:00
Цитата(MetalFan @ 28.11.2008,  16:30)
а почему бы не провести эксперимент по след.алгоритму:
1. Запуск игры
2. Получение главного окна игрового приложения
3. Присвоение парентом этого окна формы из своего приложения...

Запускаю игру CreateProcess. Получаю Handle главного окна. А дальше как?

Автор: bems 28.11.2008, 18:25
А дальше SetParent

Автор: MetalFan 28.11.2008, 19:43
ага, только остается "сообщить" окну игрушки, что надо бы из фуллскрина в виндоуд мод переключица (Alt+Enter)...

Автор: Virtuals 28.11.2008, 20:00
MetalFan, ага и прога пошлет вас лесом, 99% все вспоминаем свои эксперементы с 3д приложеиями

Автор: bems 29.11.2008, 16:51
Цитата(Virtuals @  28.11.2008,  20:00 Найти цитируемый пост)
и прога пошлет вас лесом

это верно.
Цитата(Virtuals @  28.11.2008,  06:02 Найти цитируемый пост)
VMware это компьютер, и ей пофиг на все программы

не видел версии, эмулирующей видеокарточку с поддержкой direct3D.

В сумме имеем ответ "никак"?

мне кажется, что не все так ужасно если делать только для одной конкретной игрушки. Там можно например програмно дорисовывать оконный режим в файл конфигурации игрушки еще перед запуском. Но универсальности не выйдет

Автор: CompWorm 30.11.2008, 17:38
попробуй пошарить исходники чита V0gelz Mod для gta-samp... они на си, но там есть окононизация этой игры, которая, по сути, изначально оконного режима не имеет  smile 

Автор: danielseddian 23.6.2016, 01:41
Здравствуйте, вроде и в тему, но не совсем, тут был задан вопрос - "как запускать "полноэкранную" прогу сразу в окне и желательно в другой программе", и если с первой частью вопроса всё более или менее ясно (хотя, что мешает запустить на том же VMWare?), то вот на счёт запуска других программ в окне своей проги никто ничего не ответил. Хотел бы уточнить, может кто-то всё-таки знает - хочу собрать програмку, которая все запущенные windows приложения отображает на размеченной сетке, с возможностью масштабировать по этой сетке и пролистывать запущенные ПО обычным скролингом влево-вправо.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Zapusk-chuzhoy-programmy-kak-docherneye-okno-svoyey-id50ba2e766ccc198014087eec#findElement_E7045_576b1420ae2015f91f0480bc_0

Автор: danielseddian 23.6.2016, 01:42
На даты не посмотрел :( По ходу, тема мёртвая....

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Zapusk-chuzhoy-programmy-kak-docherneye-okno-svoyey-id50ba2e766ccc198014087eec#findElement_E7045_576b1452ae2015f91f0480d6_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)