0

次のコマンドを使用して、別のEXEファイルを作成する必要があります(Player.exeインタープリターとして)。

copy / b player.exe + game.zip game.ehe 

ただし、コマンドは作成されず(batファイルが取得された場合でも)、。player.exeなしで空を起動しますgame.zip

以下のコードは機能しません:

private void button2_Click(object sender, EventArgs e)
{
    saveDialog.Filter = "exe | *.exe";
    if (saveDialog.ShowDialog() == DialogResult.OK) ;
    {
        ProcessStartInfo info = new ProcessStartInfo();
        info.FileName = @"engine\windows\player.exe";
        info.Arguments = "/b copy " + labelPath + saveDialog.FileName;
        info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        using (Process process = Process.Start(info))
        {
            process.WaitForExit();
        }
    }
}

誰かが私のコードが期待どおりに機能しない理由を教えてもらえますか?

4

2 に答える 2

2

渡すファイル パスにスペースはありますか? その場合、おそらく文字列を引用したいと思うでしょう:

info.Arguments = "/b copy \"" + labelPath + saveDialog.FileName + "\"";
于 2012-09-13T06:29:16.937 に答える
0

labelPath が Label 型である場合の別のオプション + はToStringそれを呼び出し、結果の文字列は "...Label..." のようなものになります。次のようなものが必要になる場合があります(パスにスペースがある場合は、Fredrik Mörkの回答と組み合わせる必要がある場合があります):

info.Arguments = "/b copy labelPath.Text + saveDialog.FileName; 
于 2012-09-13T06:44:13.390 に答える