2012-03-27 2 views
5

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

Любые идеи? Как можно связать и поднять событие при минимизации окна?

* обратите внимание: show and movewindow являются функциями из user32.dll. Я не пытаюсь поймать, когда MY-формы сведены к минимуму, но когда существуют программы OTHERS.

ответ

1

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

Я нашел a CodeProject article, который использует крючки, чтобы проверить, когда пользователь открывает системное меню (ALT +ПРОСТРАНСТВА) в любом окне, а затем добавляет дополнительный элемент к нему. Вы можете использовать этот код, чтобы проверить, когда пользователь нажимает кнопку «Свернуть» и запускает любой код, который вам нужен.

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