読者です 読者をやめる 読者になる 読者になる

いろいろ備忘録日記

主に .NET 絡みのメモを公開しています。

特定のプロセスをアクティブにする(Microsoft.VisualBasic.Interaction)

C#

既に起動しているプロセスを外部からアクティブにするには
以下のクラスを用います。

Microsoft.VisualBasic.Interaction


このクラスの以下のメソッドを利用して、プロセスをアクティブにします。

AppActivate(int id)


この他にも、winapiを使用してアクティブにするやり方も
あるみたいですが、今回はこれでサンプルをつくってみました。


以下サンプルです。

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using Microsoft.VisualBasic;

namespace Gsf.Samples.CSharp {

    class EntryPoint {

        /// 
        /// アクティブにするプロセス名
        /// 
        const string APP_NAME = "AFX";

        /// 
        /// アプリケーションメインエントリポイントメソッドです。
        /// 
        /// 
        /// 特定のアプリケーションをアクティブにします。
        /// 
        /// 前提条件として、
        /// ・アクティブにするプロセスが予め起動している必要があります。
        /// ・APP_NAMEにアクティブにするプロセス名をセットしておいてください。
        /// が存在します。
        /// 
        static void Main(){

            foreach(Process aProcess in Process.GetProcessesByName(APP_NAME)){
                //
                // プロセスをアクティブにする
                //
                Interaction.AppActivate(aProcess.Id);
            }
        }
    }
}


起動して実行してみると、該当するプロセスがアクティブになり前面に出てきます。