![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Внешние приложения [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]Ещё разок и внятно... чтобы все поняли, что собственно говоря требуется.