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

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

        [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)

新着情報
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)
【iOS Objective-C, Swift Tips】ウィンドウの階層構造を3D表示する(Swift)

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