私はこのような状況にあります。アプリケーションのウィンドウハンドルがあります。アクティベートする必要があります。これらすべての機能を試しましたが、常に機能するとは限りません(ほとんどの場合、最初は機能しないため、手動でクリックしてアクティブにする必要があります。2回目以降は正常に機能します)これを行っているのは、実行する必要のあるフォームのForm.Activateイベントにコードが記述されているためです。アプリケーションはシングルインスタンスアプリケーションです。新しいインスタンスが作成されると、最初に他のプロセスの存在をチェックします。見つかった場合、ユーザーが古いフォームで作業できるように、古いプロセスのハンドルがこれらの関数に渡されます。アプリケーションは別のCアプリケーションから呼び出されます。[DllImport( "user32.dll")] public static extern int ShowWindow(IntPtr hWnd、int nCmdShow);
[DllImport("user32.dll")]
public static extern int SetForegroundWindow(IntPtr hWnd);
[DllImport("user32")]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);