Окно нового процесса убрать из фокуса
|
От: |
kevkev
|
|
| Дата: | 24.02.14 15:12 |
|
Оценка: |
|
Имеется программа, которая иногда запускает внешнюю консольную утилиту.
Нужно сделать так, чтобы это новое окно не вылезало поверх других окон.
Одно из решений, что пришло в голову ставить создаваемому процессу
::ShowWindow( g_HWND, SW_HIDE );
но здесь нужно знать hwnd нового процесса. Написал такой код для его получения:
EnumWindows(EnumWindowsProcMy,(LPARAM)GetProcessId(pi.hProcess));
.....
BOOL CALLBACK EnumWindowsProcMy(HWND hwnd,LPARAM lParam)
{
DWORD lpdwProcessId;
GetWindowThreadProcessId(hwnd,&lpdwProcessId);
if(lpdwProcessId==lParam)
{
g_HWND=hwnd;
return FALSE;
}
return TRUE;
}
Но тут странность: условие никогда не срабатывает, хотя lParam правильный, именно такой id имеет мой новый процесс в таск менеджере.
Пока на собственное сообщение не было ответов, его можно удалить.