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

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

Размеры окна другого приложения... [D5, Win95/98, WinME, NT4, Win2k]


BorisM ©   (2002-01-11 04:07:00) 

Господа, подскажите начинающему, как запустить другое приложение из своей программы, задав размеры и положение его окна. Ну или изменить размер и положение окна уже запущенного приложения.
Суть задачи - расположить свою программу "рядом" с другой программой, т.е. сделать что-то типа Tile Vertically из 2-х программ на весь экран.

Заранее спасибо.


BorisM   (2002-01-13 02:24:00) [1]

Обнаружил, что код не работает под Windows2000 и Windows XP, но прекрасно работает под Windows 98.


BorisM   (2002-01-12 04:07:00) [2]

Спасибо, Виктор. Действительно, по описанию CreateProcess как раз то что нужно. Нашел в Интернете 2 примера. Вроде бы все делаю так же как в них, а не работает. Открывает Notepad в позиции по умолчанию и с размером окна тоже по умолчанию. Может кто заметит в чем моя ошибка. (D5 / W2K)

procedure TForm1.Button1Click(Sender: TObject);
begin
CreateProcessSimple( "notepad.exe" );
end;

Function CreateProcessSimple(sExecutableFilePath : string):string;

var
pi: TProcessInformation;
si: TStartupInfo;

begin
ZeroMemory( @si, sizeof(TStartupInfo));
ZeroMemory( @pi, sizeof(TProcessInformation));
with si do
begin
cb := sizeof( si );
lpReserved := nil;
lpDesktop := nil;
lpTitle := nil;
dwX := 0;
dwY := 0;
dwXSize := 300;
dwYSize := 300;
dwXCountChars := 0;
dwYCountChars := 0;
dwFillAttribute := 0;
dwFlags := STARTF_USESIZE or STARTF_USEPOSITION;
wShowWindow := SW_SHOWDEFAULT;
cbReserved2 := 0;
lpReserved2 := nil;
hStdInput := 0;
hStdOutput := 0;
hStdError := 0;
end;
CreateProcess(Nil,
PChar( sExecutableFilePath ),
Nil,
Nil,
False,
0,
Nil,
Nil,
si,
pi );

// CloseHandle( pi.hThread );
// CloseHandle( pi.hProcess );
end;


Виктор Щербаков   (2002-01-11 10:08:00) [3]

Попробуй запустить его (чужое приложение) с помощью CreateProcess. В структуре STARTUPINFO есть члены, позволяющие задавать начальные размеры и положение главного окна запускаемого приложения.


Наверх

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