C#アプリケーションから外部アプリケーションを実行する方法【Processクラス活用ガイド】
C#アプリケーションから外部アプリケーションを実行するには、Processクラスを使用します。プロセスとは、コンピュータ上で実行されているプログラムのことです。スペルチェッカーやシステムイベントハンドラーのような小さなバックグラウンドタスクから、メモ帳などの本格的なアプリケーションまで、あらゆるものが該当します。
プロセスとスレッドの基本
各プロセスは、プログラムを実行するために必要なリソースを提供します。プロセスは「プライマリスレッド(主スレッド)」と呼ばれる単一のスレッドで開始され、その後、プライマリスレッド以外にも複数のスレッドを持つことができます。
プロセスは利用可能なシステムリソースに大きく依存する一方、スレッドは必要なリソースが最小限で済みます。そのため、プロセスは「ヘビーウェイト(重量級)」、スレッドは「ライトウェイト(軽量級)」と呼ばれます。ProcessクラスはSystem.Diagnostics名前空間に含まれています。
C#アプリケーションからメモ帳を起動する例
以下のコードでは、Processクラスのインスタンスを作成し、StartInfoプロパティで実行ファイル名と引数を指定してメモ帳を起動しています。
using System;
using System.Diagnostics;
namespace DemoApplication{
class Program{
static void Main(){
Process notepad = new Process();
notepad.StartInfo.FileName = "notepad.exe";
notepad.StartInfo.Arguments = "DemoText";
notepad.Start();
Console.ReadLine();
}
}
}上記のコードを実行すると、引数で指定した「DemoText」という名前でメモ帳が起動されます。
C#アプリケーションからブラウザを起動する例
URLを直接指定する場合は、Process.Startメソッドの静的な呼び出しだけで簡単に実現できます。
using System;
using System.Diagnostics;
namespace DemoApplication{
class Program{
static void Main(){
Process.Start("https://www.google.com/");
Console.ReadLine();
}
}
}上記のコードを実行すると、既定のブラウザが起動し、www.google.comへ自動的にリダイレクトされます。
まとめ
このように、C#ではSystem.Diagnostics名前空間のProcessクラスを使うことで、外部アプリケーションの起動やWebページへのアクセスを簡単に実装できます。ファイル名や引数をStartInfoプロパティで柔軟に設定できるため、さまざまな外部プログラム連携に応用可能です。
-
Windows 10でアプリを管理者として実行する方法|7つの手順を徹底解説
Windows 10には「ユーザーアカウント制御(UAC)」というセキュリティ機能が搭載されており、一部のソフトウェアに対しては管理者権限が制限されています。しかし、特定のアプリケーションの中には、管理者権限がなければ正しくアクセス・動作できないものもあります。アプリの全機能を使いこなすためには、昇格された特権が必要になるケースがあるのです。管理者として実行されたアプリケーションには「高整合性レベル」が付与され、システム設定の変更などが可能になります。中には、管理者として実行しているときにのみ動作する機能を持つアプリもあります。この記事では、任意のアプリを管理者承認モードで実行するためのさまざ
-
MacでWindowsを使う方法|Parallels・Boot Campなど5つの手段を徹底比較
Macは安全性と快適な操作性で知られています。しかし、「Windows専用のソフトウェアを使いたいから」という理由で、Windowsからの乗り換えをためらっている方も多いのではないでしょうか。 実は、その心配は不要です。仮想マシン(Virtual Machine)などの仕組みを活用すれば、1台のMac上でmacOSとWindowsの両方を利用することができます。再起動なしにOSを切り替えられる方法もあれば、ネイティブ性能でWindowsを動かせる方法もあります。 この記事では、MacでWindowsを実行する代表的な5つの方法(Parallels Desktop、VMware Fusion、B