现需写一个小程序专门检测某一控制台程序(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里面调用其他类的东东太多(这里面引用很多同工程里不少项目),还是怎么回事。我也试了用上面的程序直接运行一个很简单的控制台程序是没有问题.不知道有哪位遇到过这种问题没,请指教!!!
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里面调用其他类的东东太多(这里面引用很多同工程里不少项目),还是怎么回事。我也试了用上面的程序直接运行一个很简单的控制台程序是没有问题.不知道有哪位遇到过这种问题没,请指教!!!
p.StartInfo.FileName = @"C:\\a\\abc.exe";
p.Start();
这样就可以了,如果你还是有问题,加我QQ:272501834
hengsf2008:权限问题?能进一步提示一下么
谢谢你们
p.StartInfo.CreateNoWindow = false
这两句去掉试试