だから見つけた
System.Diagnostics.Process.Start()
しかし、それを開始したアプリを閉じたいので(ランチャーがサーバーに接続し、ゲームを起動してそれ自体を閉じる必要があります)、機能しません。私のアプリ:
public partial class MainWindow : Window
{
Process.Start("xnagame.exe", "12345678");
this.Close();
}
プロセスに名前を付けて、プロセスを閉じるためのハンドルを取得します。すべてのプロセスが正常に終了するわけではありません。
try
{
Process myProcess;
myProcess = Process.Start("Notepad.exe");
// Display physical memory usage 5 times at intervals of 2 seconds.
for (int i = 0;i < 5; i++)
{
if (!myProcess.HasExited)
{
// Discard cached information about the process.
myProcess.Refresh();
// Print working set to console.
Console.WriteLine("Physical Memory Usage: "
+ myProcess.WorkingSet.ToString());
// Wait 2 seconds.
Thread.Sleep(2000);
}
else {
break;
}
}
// Close process by sending a close message to its main window.
myProcess.CloseMainWindow();
// Free resources associated with process.
myProcess.Close();
}
catch(Exception e)
{
Console.WriteLine("The following exception was raised: ");
Console.WriteLine(e.Message);
}
Process.Start(ProcessStartInfo)
オーバーロードを使用して、UseShellExecute
プロパティを に設定しますtrue
。