HISUI
iMedical中调用本地程序说明
2021年01月22日 10时44分

iMedical系统中调用本地程序说明

在IE浏览器中使用ActiveX功能可以调用,其它现代浏览器利用Chrome中间件功能调用。

  1. 引用../scripts/websys.js
  2. CSP源代码head中加入
<ADDINS require="CmdShell"></ADDINS>
  1. 调用本地程序
//打开本地计算器
exec('calc.exe')
///使用IE打开百度网站
exec('"C:\\Program Files\\Internet Explorer\\iexplore.exe" "http://www.hisui.cn"');
  1. 使用环境变量打开
//使用IE打开hisui.cn
exec('"%PROGRAMFILES%\\Internet Explorer\\iexplore.exe" "http://www.hisui.cn"');
//使用chrome打开hisui.cn
exec('"%APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Google Chrome.lnk" "http://www.hisui.cn"');
//使用chrome打开hisui.cn
exec('"%LOCALAPPDATA%\\Google\\Chrome\\Application\\chrome.exe" "http://www.hisui.cn"');
exec('"%USERPROFILE%\\desktop\\东华系统.lnk" "https://www.hisui.cn"');

Window操作系统下有以下特性

环境变量 真实路径
APPDATA C:\Users\用户名\AppData\Roaming
LOCALAPPDATA C:\Users\用户名\AppData\Local
PROGRAMFILES C:\Program Files
  1. exec基本源代码如下
function exec(command) {
    if (websys_isIE){
        window.oldOnError=window.onerror;
        window._command=command;
        window.onerror= function(err){
            if(err.indexOf('utomation')>-1) {
                alert('命令'+window._command+'已经被用户禁止!');
                return true;
            }else{
                return false;
            };
        };
        var wsh=new ActiveXObject('WScript.Shell');
        if (wsh) {
            wsh.Run(command);
        }
        window.onerror = window.oldOnError;
    }else{
        if (CmdShell){
            CmdShell.clear();
            CmdShell.notReturn=1;
            CmdShell.Run(command);
        }
    }
 }
  1. exec运行条件说明
    • IE浏览器,增加信任站点,且允许ActiveX运行
    • 非IE浏览器使用时,请在客户端安装Chrome中间件
    • cmd中&||<>为有意思的特殊字符要加^来转义,如果使用双引号”包裹内容则不用转义,cmd('"xx.exe" abc.com?a=1^&b=2')cmd('"xx.exe" "abc.com?a=1&b=2"')
  2. 常见问题
    • 域控下调用失败问题,把环境变量中%SystemRoot%向下移动2位
      Path-%SystemRoot%
    • 如果会快速弹出用户确认框,请安装TweakUAC.exe – 选【Leave UAC Off】 – 安装
上一篇: 下一篇:

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

访问量: 379752