Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中嵌入VBS并运行它?_C#_.net_Vbscript - Fatal编程技术网

如何在C#中嵌入VBS并运行它?

如何在C#中嵌入VBS并运行它?,c#,.net,vbscript,C#,.net,Vbscript,我有一个VBScript,运行良好。我有一个C#程序,可以用cscript程序运行VBScript 我想做的是将VBS嵌入到C#exe中,使其成为一个单独的文件并能够运行VBS文件。有没有办法将嵌入的VBScript文件作为参数传递给cscript,或者以其他方式运行嵌入的VBS文件?另一种方法是,您可以通过子进程执行cscript.EXE: Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-0

我有一个VBScript,运行良好。我有一个C#程序,可以用cscript程序运行VBScript


我想做的是将VBS嵌入到C#exe中,使其成为一个单独的文件并能够运行VBS文件。有没有办法将嵌入的VBScript文件作为参数传递给cscript,或者以其他方式运行嵌入的VBS文件?

另一种方法是,您可以通过子进程执行cscript.EXE:

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);
Process.Start("cscript.exe", "C:\\myscript.vbs");

但是,请记住.NET和C#与VBS脚本非常兼容。您可能希望直接将VBS代码重写为C#程序。

WinForms应用程序的工作示例:如何格式化VBScript的语法以使其工作?msgbox示例可以运行,但在尝试使用VBScript保留字运行脚本时出现语法错误。@L.B这不起作用:
Wscript.Echo(“hello”)
。知道为什么吗?如果没有路径的话,如何使用嵌入式资源?我正在使用
Assembly.getExecutionGassembly().GetManifestResourceStream(“script.vbs”)
将资源提取到一个临时文件,使用临时文件执行CScript。然后删除临时文件?@PaulFarry很显然我可以这么做,但我正在试图找到一种不暴露文件的方法。@Jack抱歉,但这并不明显。您没有在问题或评论中声明这是您测试的内容。@PaulFarry我已经提到我可以从C#程序运行该文件。我说“我想做的是将VBS嵌入到C#exe中,这样它就是一个
文件,并且能够运行VBS文件。
”和“运行嵌入式VBS文件的其他方法?”相关: