现需写一个小程序专门检测某一控制台程序(abc.exe)是否启动,如果没有启动就通过本小程序来启动abc.exe.现在思路是:定期扫描系统进程看是否有abc.exe这个进程,如果没有就在指定目录下启动abc.exe.程序如下:
                            bool isStart=false;
Process[] processes = Process.GetProcesses(); 
foreach(Process process in processes) 

if(process.ProcessName=="JianYuServer")
isStart=true;
}
if(!isStart)  //如果没有启动服务程序,就自动启动他
{
Process p = new Process(); Process p = new Process(); p.StartInfo.FileName = @"C:\\a\\abc.exe";
p.StartInfo.UseShellExecute = true;
p.StartInfo.CreateNoWindow = false
p.Start();
                            }
现在的问题是:用上面的代码一启动abc.exe就会弹出公共语言错误的框来,但如要我直接去目录里面,双击运行abc.exe是没有问题的,是不是因为abc.exe里面调用其他类的东东太多(这里面引用很多同工程里不少项目),还是怎么回事。我也试了用上面的程序直接运行一个很简单的控制台程序是没有问题.不知道有哪位遇到过这种问题没,请指教!!!

解决方案 »

  1.   

    process p = new Process();
    p.StartInfo.FileName = @"C:\\a\\abc.exe"; 
    p.Start();
    这样就可以了,如果你还是有问题,加我QQ:272501834
      

  2.   

    caozhy:工作目录已指定了呀,就是上面那个C:\\a\\abc.exe
    hengsf2008:权限问题?能进一步提示一下么
    谢谢你们
      

  3.   

    p.StartInfo.UseShellExecute = true;
    p.StartInfo.CreateNoWindow = false
    这两句去掉试试
      

  4.   

    谢谢大家的意见:现在问题基本解决,原因是我在abc.exe里面加载了一个abc.exe同目录下的一个config配置文件RemotingConfiguration.Configure("JianYuService.config");当我把他改成RemotingConfiguration.Configure(@"C:\\abc\\JianYuService.config");后程序调用正常了,但不知道为什么会这样,我还要继续去了解一下,谢谢大家了