Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.008 c
1-31738
Abajun
2002-10-01 12:15
2002.10.10
вызов внешней программы


3-31596
karbo
2002-09-18 08:42
2002.10.10
Помогите составить запрос...


14-31942
lak_b
2002-09-13 23:05
2002.10.10
все хреново....


1-31757
Дмитрий К.К.
2002-09-30 23:43
2002.10.10
Creation Order


3-31656
dima_
2002-09-20 11:55
2002.10.10
SQLConnection





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский