0

フォーラムを検索しましたが、まだ正しい答えはないようです。

ユーザーがブラウザで操作しているときに、systray アプリからのメッセージ通知を表示する必要があります。

この通知をすべての上に表示したいのですが、TopMost、TopLevel、BringToFront、Focus に設定しても、目的を達成する方法はありません。

私は単純な Windows フォームを使用しており、systray アプリから ShowDialog を使用して表示しています。

私を助けてください :)

PS:他のアプリケーションを開いたりフォーカスしたりせずにsystrayアプリから通知フォームを起動すると、正常に動作しますが、アクティブなブラウザウィンドウの前に表示できません

4

2 に答える 2

0
#region SetForegroundWindow
    [DllImport("kernel32.dll", ExactSpelling = true)]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    #endregion
     static void Main(string[] args)
    {
        while (true)
        {

            SetForegroundWindow(GetConsoleWindow());
        }
    }
于 2015-10-31T21:24:59.053 に答える
0
NameOfYourWindow myTopForm = new NameOfYourWindow();

myTopForm.Owner = App.Current.MainWindow;
myTopForm.ShowInTaskbar = false;
myTopForm.TopMost = true;
myTopForm.ShowDialog();
于 2014-01-21T14:52:49.520 に答える