C# 在C中调用Python作为进程#
我已在Windows中安装,因此,我可以在命令提示符下运行它,从C# 在C中调用Python作为进程#,c#,python,C#,Python,我已在Windows中安装,因此,我可以在命令提示符下运行它,从vbaProject.bin检索VBA宏: 现在,我想在Visual Studio中启动它,因此我添加了以下代码: public static void printMacros() { Process p = new Process(); p.StartInfo.FileName = "python.exe"; p.StartInfo.RedirectStandardOutput = true; p
vbaProject.bin
检索VBA宏:
现在,我想在Visual Studio中启动它,因此我添加了以下代码:
public static void printMacros()
{
Process p = new Process();
p.StartInfo.FileName = "python.exe";
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.Arguments = "../../oletools-0.46/oletools/olevba.py ../../oletools-0.46/oletools/vbaProject.bin";
p.Start();
StreamReader s = p.StandardOutput;
String output = s.ReadToEnd();
string[] r = output.Split(new char[] { ' ' });
Console.WriteLine(r[0]);
p.WaitForExit();
}
然而,汇编并没有很好地显示结果:
请注意,p.StartInfo.Arguments
中的路径。/../oletools-0.46/oletools/olevba.py
是正确的,否则不会引发此类文件或目录
错误;而将第二个参数。/../oletools-0.46/oletools/vbaProject.bin
更改为不相关的文件始终会返回相同的结果
有人知道这里出了什么问题吗?您是否尝试过指定绝对路径而不是相对路径?我刚刚尝试过,它返回了相同的结果…您是否尝试过指定绝对路径而不是相对路径?我刚刚尝试过,它返回了相同的结果。。。