2016-07-15 3 views
0

Я запускаю другое приложение и устанавливаю его основное положение и размер HWND. Я использую флаги STARTUPINFO, чтобы указать размеры окна, но похоже, что эти измерения выполняются только в том случае, если новый процесс использует CW_USEDEFAULT в своей функции CreateWindow().Запуск процесса и всегда установка процесса HWND Размеры

Есть ли флаг/настройка в STARTUPINFO, который всегда будет устанавливать новые измерения HWND-измерений? Я знаю еще одно решение, чтобы это найти процессы основного HWND и SetWindowPos() но включает в себя перечисляя все окна, чтобы найти правильную и некоторые приложения занять некоторое время запуска, так что окно живо к тому времени, я называю EnumWindows()

STARTUPINFO si; 
PROCESS_INFORMATION pi; 
ZeroMemory(&si, sizeof(si)); 
si.cb = sizeof(si); 
ZeroMemory(&pi, sizeof(pi)); 

si.dwX = x; 
si.dwY = y; 
si.dwXSize = w; 
si.dwYSize = h; 

// any flags I can set to give the STARTUPINFO dimensions priority? 
si.dwFlags = ?? 

CreateProcess(_T("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"), _T(""), 
NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, 
NULL, &si, &pi); 

ответ

3

Есть ли флаг/параметр в STARTUPINFO, который всегда будет устанавливать новые измерения HWND-процессов?

Нет. Процесс порождения имеет полный контроль над своим пользовательским интерфейсом. Он выбирает, использовать ли значения по умолчанию или нет. То, что вы указываете в STARTUPINFO, используется только по умолчанию.

Я знаю еще одно решение его найти процессы основного HWND и SetWindowPos()

Если вы хотите силы размерами, да.

, который включает перечисляя все окна, чтобы найти правильный и некоторые приложения занять некоторое время запуска, так что окно жив к тому времени, я называю EnumWindows()

Try вызова WaitForInputIdle() первый (caveat #1, caveat #2).

Или используйте SetWinEventHook() контролировать окно творение, пока не появится окно, которое вы заинтересованы в

Связанный:. How to determine when spawned process is ready? (Using CreateProcess() and FindWindow())

Смежные вопросы