美文网首页Linux学习|Gentoo/Arch/FreeBSD
Unity调用python等其它程序 2022-10-14

Unity调用python等其它程序 2022-10-14

作者: 午字横 | 来源:发表于2023-03-30 23:02 被阅读0次
1:C#/.NET 中启动进程时所使用的 UseShellExecute 设置为 true 和 false 分别代表什么意思?

https://blog.csdn.net/WPwalter/article/details/90344443

**本质差异**
Process.Start 本质上是启动一个新的子进程,不过这个属性的不同,使得启动进程的时候会调用不同的 Windows 的函数。

UseShellExecute = true
调用的是 ShellExecute
UseShellExecute = false
调用的是 CreateProcess
当然,如果你知道这两个函数的区别,那你自然也就了解此属性设置为 true 和 false 的区别了。

效果差异
ShellExecute 的用途是打开程序或者文件或者其他任何能够打开的东西(如网址)。

也就是说,你可以在 Process.Start 的时候传入这些:

一个可执行程序(exe)
一个网址
一个 html / mp4 / jpg / docx / enbx 等各种文件
在 PATH 环境变量中的各种程序
不过,此方法有一些值得注意的地方:

不支持重定向输入和输出
最终启动了哪个进程可能是不确定的,你可能需要注意潜在的安全风险
而 CreateProcess 则会精确查找路径来执行,不支持各种非可执行程序的打开。但是:

支持重定向输入和输出
如何选择
UseShellExecute 的默认值是 true。

如果有以下需求,那么建议设置此值为 false:

需要明确执行一个已知的程序
需要重定向输入和输出
如果你有以下需求,那么建议设置此值为 true 或者保持默认:

需要打开文档、媒体、网页文件等
需要打开 Url
需要打开脚本执行
需要打开计算机上环境变量中路径中的程序
————————————————
版权声明:本文为CSDN博主「walter lv」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/WPwalter/article/details/90344443
using System.Diagnostics;
public class py : MonoBehaviour
{
    void Start()
    {
        RunPythonScirpts();
    }
    void RunPythonScirpts()
    {
        Process p = new Process();
        //python代码路径
        //string path = @"D:\PythonSpace\TensorFlow2.X\unityTest\01.py";
        string path = @"https://blog.csdn.net/WPwalter/article/details/90344443";
        //https://blog.csdn.net/WPwalter/article/details/90344443
        //python代码解释器
        //p.StartInfo.FileName = @"C:\Users\liu\.conda\envs\python_3.6_tf_2.0_demo\python.exe";
        p.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";

        //在python种实用sys.argv[] 使用该参数
        p.StartInfo.UseShellExecute = false;

        p.StartInfo.Arguments = path;
        p.StartInfo.RedirectStandardError = true;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardInput = true;

        //p.StartInfo.CreateNoWindow = true;


        p.Start();
        p.BeginOutputReadLine();
        p.OutputDataReceived += new DataReceivedEventHandler(get_data);
    }

    public  void get_data(object sender,DataReceivedEventArgs e)
    {
        print(e.Data);
    }
}

相关文章

  • 之参数传递

    本文介绍了iOS和Unity交互,主要涉及参数的传递.(整个程序都处于Unity界面) 调用方法一: Unity调...

  • android:exported

    android:exported=["true" | "false"] 是否允许activity被其它程序调用

  • Unity 全平台复制内容到剪贴板简易方案

    在Unity的开发中,有时候我们会有需求,希望将Unity程序中的字符串保存到系统的剪贴板中,可以在其它的程序中粘...

  • PHP与Python程序交互

    php程序中与python脚本交互,使用python封装工具方法供php程序调用,数据分类、AI类可用python...

  • 〈详解〉Python3调用C程序

    python为什么要调用c ? c与python对比 python不擅长"大量运算"任务;python程序优势在于...

  • socket——python和unity之间传输Json数据

    做实验室的项目,使用socket在python和unity之间传输json数据,遇到了不少坑。 python程序之...

  • 函数中return的作用

    python函数中return的作用就是讲函数执行结果返回给调用程序,然后可以用来保存进行再计算等 如: >>> ...

  • R027---Uipath调用python的方法1

    ​一、缘起 看到不少朋友问Uipath调用python的方法, 这里说一个方法:调用python程序编译后的exe...

  • PHP 调用Python脚本

    1. PHP如何调用外部程序 首先要解决的问题就是php如何调用python脚本,在PHP中调用外部程序主要有两个...

  • python30-python调用外部程序

    本篇文章主要讲的是python调用外部程序基本操作。python被称为“胶水语言”,可以粘合各种外部程序和各种语言...

网友评论

    本文标题:Unity调用python等其它程序 2022-10-14

    本文链接:https://www.haomeiwen.com/subject/iioqzrtx.html