別のアプリのウィンドウを一番上にして、自分のアプリをクリックすると他のアプリのダイアログが表示されるようにします。私が抱えている問題は、電話をかけた後、アプリにフォーカスが戻らないことです。他のアプリにさらに多くのウィンドウがある場合、そのうちの1つにフォーカスがあり、それ以外の場合、ウィンドウ(タスクバーのみを見る)はフォーカスを取得しません。問題の調査はどこから始めればよいですか?
他のアプリを最上位にするための私のコードは次のとおりです。
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);