如何在C#中嵌入VBS并运行它?
问题描述:
我有一个工作正常的VBScript。我有一个可以用cscript程序运行VBScript的C#程序。如何在C#中嵌入VBS并运行它?
我想要做的就是将VBS嵌入到C#exe中,这样它就是一个单独的文件,并且能够运行VBS文件。有没有办法让我将嵌入式VBScript文件传递给cscript作为参数或其他方式来运行嵌入式VBS文件?
答
Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC"));
dynamic obj = Activator.CreateInstance(scriptType, false);
obj.Language = "vbscript";
string vbscript = "msgbox(\"test\")";
obj.Eval(vbscript);
答
另一种方法是,你可以通过一个子进程中执行CSCRIPT.EXE:
Process.Start("cscript.exe", "C:\\myscript.vbs");
但是,记住,.NET和C#是VBS脚本非常兼容。您可能想直接将VBS代码重写为C#程序。
相关:http://stackoverflow.com/questions/2409134/running-a-vbs-sub-from-c-sharp?rq=1 – 2012-07-26 11:19:38