私はゲームコミュニティ用のクライアントを作成しています。このクライアントの機能の1つは、起動時にコミュニティmodパックを有効にするパラメーターを使用してクライアントを介してゲームを起動することです。
ボタンを押すと、ゲームが起動し始め、プログラムが開くとすぐに(アイコンがタスクバーにポップアップします)、すぐに閉じます。
起動したexeを実行し続けるために必要な何かが足りませんか?
これが私のコードです:
private void btnLaunchGame_Click(object sender, EventArgs e)
{
string armaPath = gameDir+"/Expansion/beta/";
string filename = Path.Combine(armaPath, "arma2oa.exe");
string launchParams = "-noSplash -noFilePatching -showScriptErrors \"-name=Meta\" \"-mod=I:/Steam/steamapps/common/Arma 2;expansion;expansion/beta;expansion/beta/expansion;servermods/@HC_DAYZ;servermods/@HC_WEAPONS;servermods/@HC_EXTRAS;servermods/@HC_ACE\"";
System.Diagnostics.Process.Start(filename, launchParams);
}//close Game Launch
どんなアイデアでも大歓迎です!
以下にリストされている起動引数でゲームを完璧に実行する.batファイルがあります。これは、問題の原因を特定するのに役立つ可能性があります:http://puu.sh/5CGKk.png(貼り付けるコードを取得できませんでした)読み取り可能な形式)。
使用してみてくださいProcess
:
Process process = new Process();
process.StartInfo.FileName = "arma2oa.exe";
process.StartInfo.Arguments = "-noSplash -noFilePatching -showScriptErrors \"-name=Meta\" \"-mod=I:/Steam/steamapps/common/Arma 2;expansion;expansion/beta;expansion/beta/expansion;servermods/@HC_DAYZ;servermods/@HC_WEAPONS;servermods/@HC_EXTRAS;servermods/@HC_ACE\"";
process.StartInfo.WorkingDirectory = gameDir + "/Expansion/beta/";
process.Start();
これは、exeが作業ディレクトリを設定するために必要なものである可能性があります。または、クラッシュしてリソースを読み込めません。
それが機能しない場合は、おそらく追加する必要があります
process.WaitForInputIdle();
関数実行プロセスを終了する前。理由はわかりませんが、この待機なしでAcrobat Readerを実行すると、奇妙な効果が生じる場合があります。Acrobatは実行されていますが、引数を介して渡されたドキュメントは表示されません。おそらく、ガベージコレクターまたはProcess
それ自体と関係があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加