.Net (または pinvoke 経由) で、ウィンドウ フォームがビューから遮られているかどうかを判断することは可能ですか (つまり、他のウィンドウがその上に移動されているため、表示されません)。私がやっていることは、フォームが最小化されているかどうかを確認し、最小化されている場合はタスクバーのウィンドウを点滅させることです。ただし、問題は、最小化されておらず、バックグラウンドに移動しただけの場合、タスクバーのウィンドウを点滅させてユーザーに通知したいことです。ウィンドウを自動的にフォアグラウンドに移動したくありません (アクティベートしなくても)。それをクリックして、フォームを最大化および/または表示してもらいたいです。アイデア?
ここにいくつかのコードがあります:
// この人物との会話がすでにあるかどうかを確認します
var frm = theApp.GetConversationByUID(fromuid);
if (from == null)
{
frm = theApp.NewConversation(fromuid, fromname);
}
そうしないと
{
bool withinView = frm.WindowState != FormWindowState.Minimized;
if (ビュー内)
{
// ウィンドウが遮られているだけかどうかを判断する
//TODO
}
// 会話ウィンドウが表示されていない場合は、フラッシュします
if (!withinView)
{
FlashWindow.Flash(から);
}
}