我有一个在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版本的行为像本地版本?
答案 0 :(得分:0)
我通过在消息框上设置最顶层的标志来解决这个问题。这不是我想要的,但它最好不要让消息框最初显示在最顶层。