Форум: "WinAPI";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
ВнизВнешние приложения Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c