Можно ли в .Net (или через pinvoke) определить, не закрыта ли форма окна от просмотра (т.е. другие окна были перемещены поверх нее, поэтому ее нельзя увидеть)? То, что я делаю, проверяет, свернута ли форма, а затем мигает окно на панели задач, если это так. Однако проблема в том, что если он НЕ свернут, а просто перемещен в фоновый режим, я также хочу уведомить пользователя, мигнув окном на панели задач. Я не хочу автоматически перемещать окно на передний план (даже без активации). Я хочу, чтобы они щелкнули по нему, чтобы развернуть и / или показать форму. Идеи?
Вот код:
// See if we already have a conversation going with this person
var frm = theApp.GetConversationByUID(fromuid);
if (frm == null)
{
frm = theApp.NewConversation(fromuid, fromname);
}
else
{
bool withinView = frm.WindowState != FormWindowState.Minimized;
if (withinView)
{
// Determine if window is just obstructed
//TODO
}
// If the conversation window is not within view, then flash it
if (!withinView)
{
FlashWindow.Flash(frm);
}
}