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

Вниз

Внешние приложения   Найти похожие ветки 

 
Vlad2   (2002-08-27 06:31) [0]

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


 
Suntechnic ©   (2002-08-27 06:40) [1]

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


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

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

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


 
MBo ©   (2002-08-27 06:58) [3]

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


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

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


 
MBo ©   (2002-08-27 07:32) [5]

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


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

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:52) [7]

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

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


 
Vlad2   (2002-08-27 08:15) [8]

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 08:24) [9]

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

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

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


 
Vlad2   (2002-08-27 08:51) [10]

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


 
MBo ©   (2002-08-27 08:55) [11]

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-31705
AZ
2002-09-30 10:20
2002.10.10
TCollection


1-31687
123000
2002-09-30 16:13
2002.10.10
Очистка 2


1-31794
KidMan
2002-10-01 23:50
2002.10.10
Помогите!!!! Горю!


7-32044
Сергей А.
2002-08-02 23:22
2002.10.10
Голосовой модем


14-31953
MIFI
2002-09-14 20:38
2002.10.10
Для контроля над ACTIVEX кроме regsvr32