![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запуск процесса [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]процесс может игнорировать позицию при запуске