我要用c#做一个程序调用bat文件,但是调用bat时会显示出dos黑框,于是我用C#调用vbs脚本然后再用vbs脚本调用bat文件这样就没有了黑框,但是我怎么判断这个ba... 我要用c#做一个程序 调用 bat 文件,但是调用bat时会显示出dos黑框,于是我用C#调用vbs脚本 然后再用vbs脚本调用bat文件 这样就没有了黑框,但是我怎么判断 这个 bat 文件什么时候 会执行完毕啊,急求答案,谢谢
我的代码:
Process p = System.Diagnostics.Process.Start("wscript", "\""+url+"\"");
有没有其他的能让bat文件隐藏运行的方法啊,VBS真不好用,我用的时候,任务管理器里老是不断的增加 WScript.exe 这个进程 一会儿 机器就卡死 了
晕,怎么让他执行完了自动 的关闭 Wscript.exe 进程啊

/// 执行Bat文件 并且不弹出 那个 贱的该死的 --- dos黑框
public static string GetCMDOutString(string path)
{
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = path ;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardOutput = true;
String s = "";
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
while (p.WaitForExit(0) == false)
{
s += p.StandardOutput.ReadLine() + "\r\n";
}
return s;
}

这个是在网上找的,很可以的,不会弹出黑框的,贴出来,大家看下 在c#里面判断我不会,在vbs里面可以:
假设你的批处理文件名字是123.bat,下面这个程序可以检测他是否已经运行完毕。

batname="123.bat"
if test(batname)=0 then
msgbox "执行完毕"
Else
msgbox "还没执行完"
end if
function test(byval batname)
test=0
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_process Where Name='cmd.exe'")
For Each objService In colServices
data=objservice.commandline
msgbox data
d=StrReverse(mid(StrReverse(right(data,instr(StrReverse(data),"\")-1)),4))
msgbox d
if d=batname then test=1
Next
end function