Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: вопрос по CreateProcess  (Прочитано 6638 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« : 15-07-2013 10:10 » 

Всем, здравствуйте!

Опять вопрос возник:   Как изменить положение окна, создаваемого процесса?

Использую CreateProcess для вызова чужой программы,которая открывается в своём окне.
Я бы хотела это окно переместить, к примеру, влево.

Вот, как я пыталась это сделать:

PROCESS_INFORMATION pi;
STARTUPINFO cif;
ZeroMemory(&cif,sizeof(STARTUPINFO);
cif.dwFlags = STARTF_USEPOSITION;
cif.dwX =300; // к примеру и можно и любое другое - эффект 0
CreateProcess(NULL,cmdLine,NULL,NULL,FALSE,NULL,NULL,NULL,&cif,&pi)

Какие бы я числа ни указывала в cif.dwX b cif.dwY процесс пояляется в одном и том же месте.

Что делаю не так?

Пишу на visual c++ 6
« Последнее редактирование: 15-07-2013 10:45 от ann_nef » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 15-07-2013 12:09 » new

Тут может быть несколько моментов.
Как создаётся окно создаваемого процесса? В идеале взглянуть бы на его CreateWindow.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #2 : 15-07-2013 12:38 » 

Неизвестно,как создаётся - чужой процесс, написанный кем-то и когда-то.

Предположим, что cmd_line="C:\\WINDOWS\\system32\\mspaint.exe"
те обычный Paint.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 15-07-2013 12:47 » 

Хм... тогда в общем случае так просто не получится. 1. dwX dwY - смещают только угол, размер изменяется 2. при флажке STARTF_USEPOSITION позиция будет меняться у окошек, у которых при создании, вместо начальных координат указаны CW_USEDEFAULT (в прицепе такое приложение, можешь с ним попробовать). 3. работает только на стадии начальной инициаллизации главного окна, те в принципе не будет работать у приложений, которые сначала запускают какое-нить маленькое окошко, которое в свою очередь создаёт главное. 3а. Многие приложения сохраняют последнюю позицию своих окошек, и восстанавливают при след. запуске.

Я бы подошёл с другой стороны. После запуска процесса, отправить его окну MoveWindow с нужным прямоугольником. Недостаток: наверняка можно будет заметить "прыжок" с одного места, на другое.

* DummyWnd.zip (10.72 Кб - загружено 951 раз.)
« Последнее редактирование: 15-07-2013 12:53 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
ann_nef
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #4 : 15-07-2013 13:10 » 

Использовала ,как посоветовали, MoveWindows.
Долго искала как найти hWnd по dwProcessId.
В результате получилось, хоть и с прыжком второго окна.
Спасибо за помощь.
« Последнее редактирование: 16-07-2013 13:07 от ann_nef » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines