如果我问一个愚蠢的问题,请原谅我,因为我是C#的新手程序员。
我在Windows Server 2008和2003上看到了Process的不同行为。
以下是我的代码段:
Process job = new Process();
job.StartInfo.FileName = global.m_sShell;
job.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
job.StartInfo.Arguments = EXE;
job.StartInfo.UseShellExecute = false;
job.StartInfo.RedirectStandardError = true;
job.StartInfo.RedirectStandardOutput = true;
job.StartInfo.RedirectStandardInput = false;
shellScriptRetCode = job.Start();
" global.m_sShell"是一个包含系统路径的字符串,如" E:\ abc \ ksh.exe"。 [此字符串已从注册表项中获取]
此过程在Windows Server 2008上启动良好,但在Windows Server 2003(32位)上我收到错误
The system cannot find the file specified
我手动检查了文件,它存在于服务器上。 现在,如果我硬编码文件名,如:
job.StartInfo.FileName = @"E:\abc\ksh.exe";
它工作正常。
问题是我必须从注册表中获取路径密钥并使用它来启动该过程。
请提供您的专家评论。
谢谢!