Citrix サーバーで実行されているアプリケーションのインスタンスがあります。私は最近、そのソフトウェアのプラグインを作成する任務を負いました。私が働いている場所でソフトウェアを展開する方法に関係する理由から、プラグインは実際にはリモート サーバー上にある別のソフトウェアを実行し、実際に作業を行い、待機します。そのプロセスは終了します (これはユーザーから隠されています)。
この外部ソフトウェアは、メッセージ ボックスにメッセージを表示する必要がある場合があります。それがアプリケーションの上にあることを確認するために、そのアプリケーションのハンドルで user32 メッセージボックス メソッドを使用しました。
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern MessageBoxResult MessageBox(IntPtr hWnd, String text, String caption, int options);
public static MessageBoxResult ShowMessageBox(IntPtr windowHandle, string text, string caption, MessageBoxOptions options)
{
return MessageBox(windowHandle, text, caption, (int)options);
}
アプリケーションがローカル マシンで実行されている場合はうまく機能しますが、Citrix を介して実行されている場合は、メッセージ ボックスが上部に表示されなくなります。Citrix バージョンをローカル バージョンのように動作させる方法を知っている人はいますか?