重複する質問を言う前に、説明させてください(私はすべての同様のスレッドを読んだので)。
私のアプリケーションには、次の両方の設定があります。
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
また、出力タイプとしてWindowsApplicationがあります。
コマンドラインコマンドを呼び出すと、黒いウィンドウが表示されます。ウィンドウを非表示にするために他にできることはありますか?すべてのコマンドで発生するわけではありません。XCOPYは、黒いウィンドウが点滅する状況です。これは、XCOPYしている宛先にもすでにファイルが含まれていて、それを置き換えるかどうかを確認するメッセージが表示された場合にのみ発生します。/ Yを渡しても、短時間点滅します。
それが役立つなら、私はvbscriptを使用することにオープンですが、他のアイデアはありますか?
クライアントは私の実行可能ファイルを呼び出してから、コマンドラインコマンドを渡します。
C:\MyProgram.exe start XCOPY c:\Test.txt c:\ProgramFiles\
アプリケーションの完全なコードは次のとおりです。
class Program
{
static void Main(string[] args)
{
string command = GetCommandLineArugments(args);
// /c tells cmd that we want it to execute the command that follows and then exit.
System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " + command);
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = true;
procStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = procStartInfo;
process.Start();
}
private static string GetCommandLineArugments(string[] args)
{
string retVal = string.Empty;
foreach (string arg in args)
retVal += " " + arg;
return retVal;
}
}