我正在将另一个应用程序的窗口置于最顶层,以确保在我的应用程序中单击会将另一个应用程序的对话框带入视图。我遇到的问题是通话后我没有将注意力重新集中到我的应用程序上。如果另一个应用程序有更多窗口,则其中一个最终获得焦点,否则没有窗口(仅查看任务栏)获得焦点。我应该从哪里开始调查这个问题?
我将另一个应用程序置于最高位置的代码是:
Process p = Process.GetProcessById(trackedProcessID);
IntPtr h = p.MainWindowHandle;
uint TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE | SWP_ASYNCWINDOWPOS;
SetWindowPos(h, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
常数为
public static readonly uint SWP_NOMOVE = 0x0002;
public static readonly uint SWP_NOSIZE = 0x0001;
public static readonly uint SWP_ASYNCWINDOWPOS = 0x4000;
public static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);