最佳答案
我如何把我的WPF应用程序带到桌面的前面?到目前为止,我尝试过:
SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true);
SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle);
没有一个是在做这项工作(Marshal.GetLastWin32Error()
表示这些操作成功完成,并且每个定义的P/Invoke属性都有SetLastError=true
)。
如果我创建一个新的空白WPF应用程序,并使用计时器调用SwitchToThisWindow
,它完全按照预期工作,所以我不确定为什么它在我最初的情况下不起作用。
编辑:我正在与一个全局热键一起做这个。