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

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

Запуск процесса [D7, WinXP]


Morgan128 ©   (2010-10-27 16:28:00) 

Задача: Запустить программу, задав размер и расположение окна.
Запускаю с использованием инишника и CreateProcess.
Ini имеет следующие поля:
[Path]
Path=C:\WINDOWS\EXPLORER.EXE

[DW]
x=100
y=100
xs=100
ys=10

Делаю следующее:
with StartUpInfo do
 begin
   cb := SizeOf(TStartUpInfo);
   dwX:=strtoint(INI.ReadString('DW','x',x));
   dwY:=strtoint(INI.ReadString('DW','y',y));
   dwXSize:=strtoint(INI.ReadString('DW','xs',xs));
   dwYSize:=strtoint(INI.ReadString('DW','ys',ys));
   dwFlags := STARTF_USESIZE or STARTF_USEPOSITION;
 end;

И запускаю процесс:
CreateProcess(PChar(P),nil, nil,nil,false,NORMAL_PRIORITY_CLASS,nil,nil,StartUpInfo, ProcessInfo);

Данные считываются нормально, но! Окно открывается своего произвольного размера, и в том месте, где я его последний раз закрыл.
Подскажите, плиз, что у меня не так?


Morgan128   (2010-11-01 11:02:00) [1]

Ок, сделал как советовал CrytoGen. Работает. Спасибо.


Игорь Шевченко   (2010-11-01 10:42:00) [2]

Morgan128   (01.11.10 10:10) [3]

В общем случае нельзя


Morgan128   (2010-11-01 10:10:00) [3]

2 Игорь Шевченко & CrytoGen
Можно ли запустить программу так, чтобы она сразу запускалась в заданном формате, без игнорирования размеров и положения, и без последующего перехвата процесса и его доработки?


CrytoGen   (2010-10-28 22:31:00) [4]

После запуска получите handle окна и измените его позицию


Игорь Шевченко   (2010-10-28 15:27:00) [5]

процесс может игнорировать позицию при запуске


Наверх

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