■ タスク切り替えを行う(指定したウィンドウをフォアグラウンドにする)

C#では(.NET Frameworkではと言うべきか)実行中のプロセスの一覧が取得できる。しかしながら、何故かそのプロセスのウィンドウをフォアグラウンドにするような機構は実装されていないようである。ここではWin32 APIのSetForegroundWindowを利用してタスク切り替えを行ってみる。

1
2
3
4
5
6
7
[DllImport("user32.dll")]
extern static bool SetForegroundWindow(IntPtr hWnd);
 
private void listBox1_DoubleClick(object sender, System.EventArgs e) {
    Process process = (Process)((ListBox)sender).SelectedItem;
    bool b = SetForegroundWindow(process.MainWindowHandle);
}

上記の例ではリストボックスにProcessインスタンスがいくつか格納されているものとしている。SetForegroundWindowにはウィンドウハンドルを渡す必要があるが、これにはProcessインスタンスからMainWindowHandleを取得すれば良い。ただし、条件によってはうまくいかない場合もあるようだ。


"タスク切り替えを行う(指定したウィンドウをフォアグラウンドにする)"のサンプル
(2005/07/12)

新着情報
【オープンソースソフトウェア環境構築】Apple silicon Macで開発環境を構築
【Rust Tips】Actix webでJSONをPOSTする
【Rust Tips】コマンドライン引数を取得する

Copyright(C) 2004-2012 モバイル開発系(K) All rights reserved.
[Home]