Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Внешние приложения [D6]


Vlad2 ©   (2002-08-27 06:31:00) 

Здравствуйте !
Кто знает, как запустить внешнее приложение в дочернем окне главной формы delphi ? Например, в какой-либо TPanel или TForm ?


Vlad2   (2002-08-27 09:36:00) [1]

to MBo
Да, всё верно (ддубина), findwindow просит the window"s title, - заголовок окна, а я что-то зациклился.
А нельзя ли, всё таки, обойтись без связки
ShellExecute & FindWindow ?, сразу запустив appl.exe в каком либо дочернем окне ?


MBo   (2002-08-27 08:55:00) [2]

нет слов.
внимательно перечитай MBo © (27.08.02 06:58)
и ИМЕННО так и сделай


Vlad2   (2002-08-27 08:51:00) [3]

to MBo
Согласен, бред какой-то.
Но факт в том, что у меня после выполнения shellexecute(0, ...)
findwindow(Pchar("C:\WINNT\NOTEPAD.EXE"),nil);
не находит это окно.
Я понял так, что в shellexecute(HWND, ...)
можно передать "handle to parent window", но использование
в качестве этого параметра handle дочернего окна mainForm неверно.


MBo   (2002-08-27 08:24:00) [4]

бред какой-то.

shellexecute(0, nil,"C:\WINNT\NOTEPAD.EXE",nil, nil,SW_SHOWNORMAL);

далее
MBo © (27.08.02 06:58)


Vlad2   (2002-08-27 08:15:00) [5]

to Mbo
Выполнил:
shellexecute(TabSheet2.Handle, nil,
"C:\WINNT\NOTEPAD.EXE",
nil, nil, SW_SHOWNORMAL);

h:=findwindow(Pchar("C:\WINNT\NOTEPAD.EXE"),nil);

и всё равно h = 0. Appl.exe открывается в своём окне, игнорируя
TabSheet2.Handle.


MBo   (2002-08-27 07:52:00) [6]

>TCustomFileRun
Я не знаю, что это.

Уже указана последовательность действий - shellexecute findwindow windows.setparent


Vlad2   (2002-08-27 07:48:00) [7]

to MBo
Не хочет открываться в дочернем окне. Я сделал так:

r: TCustomFileRun;
r := TCustomFileRun.Create(self);
r.FileName := "C:\WINNT\NOTEPAD.EXE";
r.ParentControl := TabSheet2;
r.Execute;

Открывается в своём окне, - игнорирует
r.ParentControl := TabSheet2;


MBo   (2002-08-27 07:32:00) [8]

findwindow находит имеющееся уже окно.
сначала запусти notepad, например, shellexecute или createprocess


Vlad2   (2002-08-27 07:21:00) [9]

to MBo
Что-то слаб я в winApi:
значение
h:=findwindow(Pchar("C:\WINNT\NOTEPAD.EXE"),nil);
нулевое.


MBo   (2002-08-27 06:58:00) [10]

h:=findwindow(Pchar("Notepad"),nil);
if h<>0 then
windows.setparent(h,panel1.handle);


Vlad2   (2002-08-27 06:54:00) [11]

1. главная форма main: TForm1.
2. panel := TPanel.Create(main)
3. panel.Parent := main;

Как визуализиравать другое приложение (appl.exe) в этой панели ?


Suntechnic   (2002-08-27 06:40:00) [12]

Ещё разок и внятно... чтобы все поняли, что собственно говоря требуется.


Наверх

Титульная страница Поиск, карта сайта Написать письмо