Обработка свернутых программ - PullRequest
5 голосов
/ 28 марта 2012

Мне нужна помощь в работе с свернутыми программами при использовании собственного / самодельного файла explorer.exe ... потому что, если не обработать его должным образом, свернутые программы просто уменьшатся до 100x50px и останутся на экране.Я разработал таймер в C # для проверки «знаковых» процессов, перечисления их mainWindowHandler и перемещения их за пределы экрана с помощью «MoveWindow».Чтобы вернуть их, я использую обработчик и функцию «ShowWindow», которая работает УДИВИТЕЛЬНО ... но, как я уже сказал, она использует постоянно работающий таймер, поэтому должен быть более чистый / простой способ достижения этого.

Есть идеи?Какой-нибудь способ перехватить и вызвать событие, когда окно свернуто?

* пожалуйста, обратите внимание: show и movewindow являются функциями из user32.dll.Я не пытаюсь поймать, когда МОИ формы свернуты, а когда ДРУГИЕ программы.

1 Ответ

1 голос
/ 28 марта 2012

Вы можете создать ловушку для проверки, когда окна свернуты.

Я нашел статью CodeProject , которая использует ловушки для проверки, когда пользователь открывает системное меню ( ALT + ПРОБЕЛ ) в любом окне, а затем добавляет к нему дополнительный элемент.Вы можете использовать этот код для проверки, когда пользователь нажимает кнопку минимизации, и запускать там любой код, который вам нужен.

Статья CodeProject написана на C ++, но вы можете адаптировать тот же метод для C # (или использовать P/Invoke).

...