C# Start()使用问题记录

来源:互联网 发布:开淘宝店的好处 编辑:程序博客网 时间:2024/06/07 03:07
C# Start()使用问题记录
似乎已经完全按照要求,赋值了相关属性的数据,但是Start还是运行有问题。例如:提示 The directory name is invalid 等等。


需要注意:

运行的程序要给出全部的路径名 fullpathname。Process.StartInfo.FileName
如果下列参数为真,可能还需要给出工作目录名Process.StartInfo.WorkingDirectory
Process.StartInfo.UseShellExecute = false; //false : no needProcess.StartInfo.WorkingDirectory

参数中不可以有重定向的字符,重定向需要设置StartInfo的其它属性才可以实现
Process.StartInfo.Arguments = "... >> my.log"

如果使用 Process.StartInfo.FileName = "CMD"
Process.StartInfo.Arguments = """ + @"/C" + @"...." + """
参数部分可能需要应该作为整体的一个字符串,引号起来。这时,CMD启动的程序可以使用重定向,但不是CMD命令被重定向了。
有的程序只能识别8个有效的文件或目录名,需要ShortName转换一下。

如果Start的文件名和参数比较复杂,
最好使用,如下方法:
            string tempbatfilename = Path.GetTempFileName() + ".bat"; //Creat a bat file
            // get your CommandLineText & CommandArguments
            using (StreamWriter swtmp = File.CreateText(tempbatfilename))
            {
                swtmp.WriteLine(CommandLineText + " " + CommandArguments);
            }
......
            try
            {
                myProcess.StartInfo.UseShellExecute = false; 
                myProcess.StartInfo.FileName = tempbatfilename;
                myProcess.Start();
            }
...

            finally
            {
                File.Delete(tempbatfilename);
            }

0 0
原创粉丝点击