Unity实现发布web后,从HTML调用本地文件的总结

1. 遇到的问题

从xml读数据,xml的编码用中文就会乱码,改编码格式就调用不了。目前采用默认的ANSI编码。

.exe           .txt  .xlsx  .xml  .test

Run     √ (路径不能带空格)   √      √      √       √ (.test要有关联的默认打开方式如记事本)

Exec    √                          ×      ×      ×       ×

 

Run  不能直接打开带有空格的路径,如果带有空格,我给路径加一对双引号就又能运行

Exec 可以打开带有空格的.exe文件

 

一篇比较好的例子:必须要用支持ActiveX的浏览器,比如IE。并且在IE-Internet选项-安全-自定义级别-对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本 选择启用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function Run(strPath) {
            //debugger;
            exe.value = strPath;
            try
            {
                 //核心语句
                 var objShell = new ActiveXObject("wscript.shell");
                 objShell.Run(strPath);
                 objShell = null;
             }
             catch (e)
             {
                 alert('找不到文件"' + strPath + '"(或它的组件之一)。请确定路径和文件名是否正确,而且所需的库文件均可用。')
            }
        }

    </script>
</head>
<body>
    请输入要运行的程序:<br>
    <input name="exe" type="text" size="20" value="regedit">
    <button type="button" onclick="Run(exe.value)">
        确定</button>
    <button type="button" onclick="exe.value=''">
        重新输入</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\system32\\notepad.exe')">
        记事本</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\system32\\mspaint.exe')">
        画图板</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\system32\\calc.exe')">
        计算器</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\system32\\cmd.exe')">
        cmd</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\regedit.exe')">
        注册表</button><br>
    <button type="button" onclick="Run('C:\\WINDOWS\\system32\\msconfig.exe')">
        Msconfig</button><br>
</body>
</html>

 

未经允许不得转载:第一Unity3D » Unity实现发布web后,从HTML调用本地文件的总结

赞 (0)