Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизЗапуск внешнего приложения внутри формы. Найти похожие ветки
← →
Василий (2006-06-15 06:39) [0]Здравствуйте, мастера.
Вот такой вопрос возник.
Есть программа, работающая под DOS и мне необходимо ее запустить из моего приложения. Фунции ShellExecute, Winexec запускают его во внешнем окне. А мне бы хотелось чтобы запускалась на главной моей форме (скажем на форму кидаю panel1 со своими размерами, а программа "запускается" в области данной панели.
Не подскажите как это сделать.
← →
StriderMan © (2006-06-15 08:48) [1]где-то тут была тема, как выводить консольное приложение в TMemo, поищите
← →
Василий (2006-06-17 07:07) [2]Прошу прощения, не нашел.
Ссылкой не поможите?
← →
Loginov Dmitry © (2006-06-17 08:35) [3]Используй технологии, связанные с СОМ...
← →
Василий (2006-06-18 05:45) [4]Я начинающий и не все знаю.
Не дадите ссылку, где это более подробно расписано, а то я из этих ответов ничего не понял.
Понял где надо искать, а как сделать на практике...
← →
Loginov Dmitry © (2006-06-18 09:47) [5][3] не смотри, ибо это шутка...
← →
Zeqfreed © (2006-06-18 09:56) [6]> [4] Василий (18.06.06 05:45)
http://delphi.about.com/cs/adptips2001/a/bltip0201_2.htm
http://www.elists.org/pipermail/delphi-talk/2000-January/002484.html
Вот что выдает гугл за первую минуту поиска.
← →
Василий (2006-06-22 06:12) [7]Здравствуйте.
Я исследовал код на работу.
Да он работает, но он годится для запуска приложений которые работают и выдают соответсвующие сообщения в ДОС (тот же scandisk).
А вот если запустить NC, DOS Nav или на худой конец Turbo Pascal 7.0 у которых свои "окошки" в программе. Мне надо запустить именно такую программу.
← →
Elen © (2006-06-22 07:44) [8]
> Василий
А вот если запустить NC, DOS Nav или на худой конец Turbo Pascal 7.0 у которых свои "окошки" в программе
DOS программы так с твоим приложением взаимодействовать не будут, разве что ты не передвинеш программно окошко запускаемой проги в то место куда нужно или поставь по другому задачу.
← →
vidiv © (2006-06-22 08:43) [9]
> Elen © (22.06.06 07:44) [8]
winoldap же заставлет взаимодействовать=)))
← →
Василий (2006-06-22 15:04) [10]>Elen © (22.06.06 07:44) [8]
>разве что ты не передвинеш программно окошко запускаемой проги в то >место куда нужно или поставь по другому задачу.
Не подскажите какими функциями можно определить координаты окна запускаемого приложения DOS и каким образом его на экране отобразить. И еще можно ли определенными функциями (если таковые есть) у запускаемого окна убрать (или сделать) неактивными кнопки управления окна, тогда действительно можно получить эффект открывания DOS-приложения в отдельном окне, как будто открыто на каком нибудь компоненте.
Заранее благодарен.
>vidiv © (22.06.06 08:43) [9]
>winoldap же заставлет взаимодействовать=)))
Немного не понял, а поподробнее можно ?
← →
Elen © (2006-06-22 15:44) [11]
> Не подскажите какими функциями можно определить координаты окна
Кажется GetWindowPlacement и установить SetWindowPlacement.
← →
Игорь Шевченко © (2006-06-22 16:46) [12]
> А вот если запустить NC, DOS Nav или на худой конец Turbo
> Pascal 7.0 у которых свои "окошки" в программе. Мне надо
> запустить именно такую программу.
Не получится.
← →
Василий (2006-06-23 05:13) [13]>Elen © (22.06.06 15:44) [11]
>Кажется GetWindowPlacement и установить SetWindowPlacement.
Спасибо. Сегодня поэкспериментирую.
А на счет управляющих кнопок окна (закрытие, свертывание...) их убрать можно или сделать неактивными.
← →
Elen © (2006-06-23 07:47) [14]
> А на счет управляющих кнопок окна (закрытие, свертывание.
> ..) их убрать можно или сделать неактивными.
Точно не знаю но кажется нет. Мой знакомый мучался примерно с такой же задачей скрытия кнопок и в конце концов сделал так (Мутно немного но работает...):
У консоли DOS как и у всякго окошка есть заголовок, где и находятся кнопки закрытия и свертывания. Высота у него где то 15 пикс. Суть в том, что как только мышка попадает в эту область ее курсор программно скрывается
А координаты определяются в своей ловушке в DLL
Если кто-то из Мастеров знает способ попроще, пусть не смеется над этим. :-)
← →
Василий (2006-06-23 15:26) [15]Elen © (23.06.06 07:47) [14]
Точно не знаю но кажется нет. Мой знакомый мучался примерно с такой же задачей скрытия кнопок и в конце концов сделал так (Мутно немного но работает...):
У консоли DOS как и у всякго окошка есть заголовок, где и находятся кнопки закрытия и свертывания. Высота у него где то 15 пикс. Суть в том, что как только мышка попадает в эту область ее курсор программно скрывается
А координаты определяются в своей ловушке в DLL
Если кто-то из Мастеров знает способ попроще, пусть не смеется над этим. :-)
Если можно чуточку подробнее. Если есть ориентироваочный код, не могли бы его показать.
Еще один момент. Никак не могу поймать дескриптор окна запускаемого DOS-приложения. Есть ли какая-нибудь процедура (так как через WinSight не могу отыскать окно приложения, а использовать FindWindow требуются значения "формы" приложения) котороя запустила бы приложение и тут же присвоела переменной ее дескриптор. Или может есть более верный способ найти дескриптор окна DOS-приложения.
Заранее благодарен.
← →
Elen © (2006-06-23 16:39) [16]
> Если есть ориентироваочный код, не могли бы его показать.
Кода нет
> Никак не могу поймать дескриптор окна запускаемого DOS-приложения
Если известен заголовок окна или процесса, то его легко отловить скажем через EnumWindow, EnumProcess. Например вести справочник DOS программ и как только запустился процесс с именем указанным в справочнике делать то-то
Другой вариант : Юзер скорее всего будет по окну елозить мышкой когда оно открыто - Ставим глобальный хук на мышку и отлавливаем по получаемым в хуке координатам окно. и дальше фантазия разработчика... (Кода нет)
← →
Василий (2006-06-24 07:58) [17]>Elen © (23.06.06 16:39) [16]
>Если известен заголовок окна или процесса, то его легко отловить скажем >через EnumWindow, EnumProcess.
Заголовок окна, это то что на написано на "составной части формы", типа "c:\mustang\winstart.bat cmd.exe" иди что-то другое.
Спасибо. Прочитаю про эти функции.
> Например вести справочник DOS программ и как только запустился >процесс с именем указанным в справочнике делать то-то
>Другой вариант : Юзер скорее всего будет по окну елозить мышкой когда >оно открыто - Ставим глобальный хук на мышку и отлавливаем по >получаемым в хуке координатам окно. и дальше фантазия разработчика...
Идею понял кром справочников. Как можно использовать справочник, это что ли в списке указывать путь к DOS-приложению?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c