C#を使用してアプリケーションを起動するにはどうすればよいですか?
要件:Windows XPおよびWindows Vistaで動作する必要があります。
Windows Vistaでのみ機能するDinnerNow.netサンプラーのサンプルを見ました。
C#を使用してアプリケーションを起動するにはどうすればよいですか?
要件:Windows XPおよびWindows Vistaで動作する必要があります。
Windows Vistaでのみ機能するDinnerNow.netサンプラーのサンプルを見ました。
回答:
System.Diagnostics.Process.Start()
メソッドを使用します。
使い方はこちらの記事をご覧ください。
Process.Start("notepad", "readme.txt");
string winpath = Environment.GetEnvironmentVariable("windir");
string path = System.IO.Path.GetDirectoryName(
System.Windows.Forms.Application.ExecutablePath);
Process.Start(winpath + @"\Microsoft.NET\Framework\v1.0.3705\Installutil.exe",
path + "\\MyService.exe");
役立つコードのスニペットを次に示します。
using System.Diagnostics;
// Prepare the process to run
ProcessStartInfo start = new ProcessStartInfo();
// Enter in the command line arguments, everything you would enter after the executable name itself
start.Arguments = arguments;
// Enter the executable to run, including the complete path
start.FileName = ExeName;
// Do you want to show a console window?
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
int exitCode;
// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
// Retrieve the app's exit code
exitCode = proc.ExitCode;
}
これらのオブジェクトを使ってできることは他にもたくさんあります。ドキュメントProcessStartInfo、Processを読んでください。
PathTo*.exe
、私はそれが機能するとは思わないでしょう。(a)複数の一致がある場合はどうなりますか?(b)セキュリティが弱いため、Microsoftのコードでこれを許可しないことを望みます。
System.Diagnostics.Process.Start("PathToExe.exe");
さらに、可能な限り、パスに環境変数を使用する必要があります。http://en.wikipedia.org/wiki/Environment_variable#Default_Values_on_Microsoft_Windows
例えば
もっと長いリストについては、リンクをチェックしてください。
これを試して:
Process.Start("Location Of File.exe");
(必ずSystem.Diagnosticsライブラリを使用してください)