Здравствуйте Есть игра, которая не хочет сворачиваться, пишу утилиту которая по нажатию на горячую клавишу должна сворачивать и разворачивать окно, что посылать окну, что послать игре что-бы свернуть её? (Не в системный трей)
Упрямое окно может намеренно хендлить все попытки его свернуть. Начни с ChangeDisplaySettings для восстановления десктоповского резолюшена.
Можно попробовать SetWindowPos winHandle, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER Or SWP_HIDEWINDOW
не, если там стоит флаг 4(не помню как он в дефайнах называется), то при сворачивании/закрытии оно автоматически ресторится. так что простейшие апи по минимайзу прекрасно подойдут.
Опыт показывает, что самый рабочий способ закрыть назойливое приложение - это угадать Alt+Tab-ом где там Far, перейти в полноэкранный режим (Alt+Enter) и грохнуть процесс в панели процессов.
Метод 1 Код (Text): .data? lpDevMode DEVMODE <> .code mov lpDevMode.dmSize, 0 invoke ChangeDisplaySettings, addr lpDevMode, 0 Правда на счет флага я не понял какой нужен Метод 2 Код (Text): invoke FindWindow, NULL, addr pszProcName mov hWnd, eax .if eax==NULL invoke MessageBox,0,$TEXT("Coldnt find window!"),0,0 ret .endif invoke SetWindowPos, hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER Or SWP_HIDEWINDOW При вызове игра просто выводит черное окно и виснет (кушает память)
пусть игра идет в полный экран на одном мониторе - а на втором будет рабочий стол, и запущенные необходимые приложения =) если это хорошо для вируса, почему плохо для мирного случая? А между десктопами можно потом переключаться, в том числе - горячими клавишами. Если я правильно понимаю, конечная цель вовсе не в том, чтобы иметь игру свернутой - а в том, чтобы получить доступ к другим окнам... АртМани, к примеру )) или отладчику...
Цель свернуть игру на время прочитать сообщение по асе, что на другом конце провода человек готов присоединится ко мне и что-бы мы начали играть
JCronos Если уверены, что это окно принадлежит игре, попробуйте спрятать его GetAncestor( ,GA_ROOT). Вполне вероятно, что спрятать понадобится несколько окон. Хотя далеко не факт, что поможет.