.NET (C#) Событие сворачивания окна
Вопрос
Эй, я действительно застрял со своим проектом...Мне нужно знать, когда какое-либо открытое окно было свернуто/восстановлено, и обработать это событие в моем собственном приложении.Есть идеи?
Редактировать:Musigenesis прав, я хочу знать, когда ДРУГИЕ приложения свернуты/восстановлены.
Решение
Я думаю, вам нужно будет использовать функцию API SetWindowsHookEx Win32 (наряду с некоторыми другими).По сути, вы должны перебирать все открытые окна в ОС и подключаться к их событиям изменения размера.
Обязательный комментарий:ты конечно тебе нужно это сделать?Хотя я думаю, что это теоретически возможно, это звучит как довольно плохая идея и противоречит тому, как должны вести себя приложения в Windows.
Обновлять:Я думаю, что «Показать рабочий стол» в Windows работает примерно так, за исключением того, что он перебирает все открытые окна, а затем использует SendMessage, чтобы свернуть их, если они открыты (полное предположение с моей стороны).
Обновление 2:это сложный вопрос, и мне очень интересно узнать, как это можно сделать (я на 100% уверен, что это является возможный).Я слежу за этим вопросом, и если в ближайшие день-два никто не ответит, я опубликую его снова и предложу за него вознаграждение (вы можете это сделать, но вам нужно иметь некоторые собственные очки репутации, которые можно предложить в качестве награды).
Другие советы
Предполагая, что вы используете Windows Forms, вы можете справиться с OnSizeChanged
событие, и протестируйте WindowState