0

如果我问一个愚蠢的问题,请原谅我,因为我是 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";

它工作正常。

问题是我必须从注册表中获取路径键并使用它来启动进程。

请向我提供您的专家意见。

谢谢!

4

0 回答 0