わかりました、名前などでウィンドウを見つけることに関する多くの投稿を見つけました。私が見つけていないのは、ウィンドウアプリケーションのフォーカスを見つけて、最後にアクティブなウィンドウに切り替える方法です。以下に示すコードは、アクティブなタスク マネージャー内のアクティブなアプリケーションのリストを表示します。
どうすればいいのか分からないのは、どのアプリケーションが最後にアクティブだったのかを突き止めてから、それに切り替えることです。例えば...
カスタムの winform アプリケーションを開いています。
ボタンをクリックします
アプリケーションが最後にアクティブだったウィンドウ/アプリケーションに切り替わります。
ここに私がこれまでに持っている作業コードがあります。(これはボタンに対するアクションであり、アプリケーションに textbox1 という名前のテキスト ボックスがあることが想定されています。また、System.Diagnostics を使用して追加する必要があります。
private void button1_Click(object sender, EventArgs e)
{
Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach (Process proc in procs)
{
if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
{
textBox1.Text += (proc.ProcessName.ToString());
textBox1.Text += "\t";
textBox1.Text += (hWnd.ToString());
textBox1.Text += "\r\n";
}
}
}