Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

Запуск внешнего приложения внутри формы.   Найти похожие ветки 

 
Василий   (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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.043 c
3-1147352502
wirg
2006-05-11 17:01
2006.07.09
Filter


2-1150612560
Тимофей Юрьевич
2006-06-18 10:36
2006.07.09
TidHTTP


11-1129900923
Muxaspb
2005-10-21 17:22
2006.07.09
Проблема с TBitmap.StretchDraw


2-1150627340
DPOBOCEK
2006-06-18 14:42
2006.07.09
Помогите с указателями плз...


15-1150036334
TUser
2006-06-11 18:32
2006.07.09
Perl, Apach, ect