Конференция "WinAPI" » Запуск процесса [D7, WinXP]
 
  • Morgan128 (27.10.10 16:28) [0]
    Задача: Запустить программу, задав размер и расположение окна.
    Запускаю с использованием инишника и 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);



    Данные считываются нормально, но! Окно открывается своего произвольного размера, и в том месте, где я его последний раз закрыл.
    Подскажите, плиз, что у меня не так?
  • Игорь Шевченко © (28.10.10 15:27) [1]
    процесс может игнорировать позицию при запуске
  • CrytoGen (28.10.10 22:31) [2]
    После запуска получите handle окна и измените его позицию
  • Morgan128 (01.11.10 10:10) [3]
    2 Игорь Шевченко & CrytoGen
    Можно ли запустить программу так, чтобы она сразу запускалась в заданном формате, без игнорирования размеров и положения, и без последующего перехвата процесса и его доработки?
  • Игорь Шевченко © (01.11.10 10:42) [4]
    Morgan128   (01.11.10 10:10) [3]

    В общем случае нельзя
  • Morgan128 (01.11.10 11:02) [5]
    Ок, сделал как советовал CrytoGen. Работает. Спасибо.
 
Конференция "WinAPI" » Запуск процесса [D7, WinXP]
Есть новые Нет новых   [134431   +12][b:0][p:0.001]