Можно ли демонстрировать или отображать программу .exe в окне своей же программы?
Всем привет. Такой вопрос для моего проекта. Можно ли демонстрировать или отображать программу .exe в окне своей же программы?
Подробно:
Есть допустим программа на C# WindowsForms или C++ CLR, на крайний случай Java Главное чтобы с конструктором. И есть вообщем такая потребность, интегрировать окно Hammer Editor (Создание уровней для игр на движке Source) в проект. Сам новичок и обыскал все чтобы это сделать. Но не нашел. Есть ли какие то статьи, или ролик на ютубе и т.д.? И вообще такое возможно реализовать?
И есть вообщем такая потребность, интегрировать окно Hammer Editor (Создание уровней для игр на движке Source) в проект.
Это возможно при условии, если данное приложение предоставляет соответствующий интерфейс в виде DLL библиотеки. Смотрите документацию приложения либо его исходники, при наличии оных.
nerediskareal, придётся искать замену или другой подход.
Что ты вообще хочешь сделать? Может можно сделать модификацию для самого Hammer Editor? Есть вот Hammer++ какой-то, например.
Василий Банников, Да, Hammer++ есть замена. И даже сайт на GitHub есть. Но, автор упомянул что не будет выпускать open source. Сейчас скачал Hammer открытый код, из слитого движка Source 2007 года. Попытаюсь достать dll оттуда
nerediskareal, в принципе можно захватывать как картинку (как это делают всякие средства для захвата экрана и удалённого доступа), но это явно не то, что тебе нужно.
Сейчас скачал Hammer открытый код, из слитого движка Source 2007 года. Попытаюсь достать dll оттуда
Недостаточно одних только DLL, часть функций/ресурсов вполне может быть внутри EXE (а именно так там всё и будет - 99%, ибо окно создаётся через цепочку вызовов системных API, которые почти всегда в основном исполняемом файле находятся, т.к. это самый верхний уровень обычно). Кроме того, даже если часть логики проекта разбита на отдельные в DLL, то вот они все могут зависеть от кода из exe (форматы данных, вызовов и прочее). А еще документация нужна будет по функциям. И даже если все это будет получено и изучено - этого скорее всего будет недостаточно, т.к. окно верхнего уровня - это окно верхнего уровня и взять и просто так сделать его дочерним не так-то просто. Если там из коробки нет возможности встраивания - то проще отреверсить формат данных и написать свою реализацию.
nerediskareal, в смысле? Что именно вы хотите от командной строки? Хотите встроить виндовую консоль в свое приложение? Или использовать командную строку молотка? С этим вообще без проблем - вызов приложения с параметрами делается в пару строчек.
Создаете в своем приложении текстовое окно для вывода текста и второе окно для ввода команд. При запуске вашего приложения фоном запускаете процесс cmd.exe без окна (смотрите опции запуска приложений). Ну а далее при вводе команды в вашем окне передаёте её в cmd через стандартный ввод, а стандартный вывод отображаете в вашем окне для вывода текста.
Да можно. Если речь идет например о том чтобы в HexEdit открыть сам HexEdit.
Но некоторые ОС в момент исполнения файла могут накладывать на него блокировку
поэтому редактировать его будет нельзя или перемещать тоже будет нельзя.