Unity打开电脑本地计算器exe文件(调用PC平台下外部命令的方法)

C#为我们提供了System.Diagnostics.Process.Start()方法,在Windows平台下可以调用外部的命令

测试代码:

/// <summary>
    /// exe在电脑下的路径名,计算器比较特殊直接打开calc.exe即可
    /// 如需打开其他exe,则需完整路径名称
    /// </summary>
    private string path = "calc.exe";//fsquirt.exe蓝牙exe文件
    private void OnGUI()
    {
        if (GUI.Button(new Rect(200,100,100,100),"打开计算器"))
        {
            //判断当前运行平台是否是Windows
            if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer)
            {
                //判断是否是绝对路径和判断文件是否存在
                if (false == System.IO.Path.IsPathRooted(path) || System.IO.File.Exists(path))
                {
                    try
                    {
                        //打开exe文件,ie浏览器打开"http://www.baidu.com"
                        System.Diagnostics.Process.Start(path);//explorer.exe资源管理器,iexplore.exeIE浏览器
                    }
                    catch (System.Exception e)
                    {
                        Debug.Log("ExternalCallFunc exception : " + e.Message);
                    }
                }
            }
        }
    }

实现效果:
1.调用本地exe文件
在这里插入图片描述
实际上它调用外部命令时打开的是以下文件夹的exe文件:
在这里插入图片描述
像蓝牙:fsquirt.exe蓝牙exe文件、ie浏览器:iexplore.exeIE浏览器exe文件、资源管理器:explorer.exe资源管理器exe文件等这些PC平台下的都可以填写这些路径直接打开,要是自己安装的程序就不行,比如说:打开qq:System.Diagnostics.Process.Start("QQ.exe");这么写会报异常:在这里插入图片描述
提示系统找不到,必须写入完整的路径名称:System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Tencent\QQ\Bin\QQ.exe");才能正常打开。
在这里插入图片描述

2、定位打开某个文件夹可以这么写:System.Diagnostics.Process.Start("D:/Program Files/Unity/");
path写入的是相对路径
在这里插入图片描述
3、调用本地ie浏览器打开某个网址:System.Diagnostics.Process.Start("https://www.csdn.net/");
在这里插入图片描述
System.Diagnostics.Process.Start()简直是有点好用呀,当然这个构造方法还有很多功能,需要的话再深入研究,可以举一反三将调用的方法封装一下,做成自己想要的效果。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Unity WebGL应用程序中,由于浏览器的安全性限制,它无法直接访问用户的本地文件系统。因此,如果您需要读取用户的本地文件,您需要让用户手动选择文件并上传到您的服务器,然后从服务器端读取该文件。 但是,如果您只是需要让用户选择文件并在WebGL应用程序中加载该文件,您可以使用HTML5的File API和Unity的WWW类来实现。具体步骤如下: 1. 在HTML页面中创建一个文件输入框,并在用户选择文件后触发一个回调函数。 ```html <input type="file" id="fileInput" onchange="loadFile()" /> ``` 2. 在回调函数中使用File API读取用户选择的文件,将文件数据传递给Unity的JavaScript代码。 ```javascript function loadFile() { var fileInput = document.getElementById("fileInput"); var file = fileInput.files[0]; var reader = new FileReader(); reader.onload = function (e) { var fileData = e.target.result; unityInstance.SendMessage("YourGameObjectName", "LoadFile", fileData); }; reader.readAsArrayBuffer(file); } ``` 3. 在Unity的JavaScript代码中,使用WWW类加载从HTML页面中传递过来的文件数据。 ```javascript function LoadFile(fileData) { var url = URL.createObjectURL(new Blob([fileData])); var www = new WWW(url); // Do something with the loaded file } ``` 需要注意的是,由于加载本地文件是一个异步操作,因此您需要在代码中处理异步加载的情况。另外,由于这种方法需要上传文件到服务器,因此对于大型文件或需要频繁读写的文件,可能不是一个有效的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周的Unity小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值