如果我问一个愚蠢的问题,请原谅我,因为我是 C# 的新手程序员。
我在 Windows Server 2008 和 2003 上看到进程的不同行为。
下面是我的代码片段:
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";
它工作正常。
问题是我必须从注册表中获取路径键并使用它来启动进程。
请向我提供您的专家意见。
谢谢!