Я пишу программу на C # .net, которая изменяет фон рабочего стола только тогда, когда рабочий стол не виден пользователю, т.е. полностью покрыт каким-то образом открытыми в данный момент окнами.
В идеале решение запускало бы событие всякий раз, когда обнаруживало изменение видимости рабочего стола, но сейчас я даже не знаю, как проверить видимость в первую очередь, кроме сканирования каждого пикселя (невероятно неэффективно) или периодического зацикливания через все открытые окна и проверка их размеров (все еще неэффективно, и я понятия не имею, как реализовать.)
Я дурачился с Windows.Forms.Screen и методами user32.dll, перечисленными здесь , но не смогли придумать ничего эффективного.
Большое спасибо всем, кто достаточно любезен, чтобы помочь!