iMedical系统中调用本地程序说明
在IE浏览器中使用ActiveX功能可以调用,其它现代浏览器利用Chrome中间件功能调用。
- 引用../scripts/websys.js
- CSP源代码head中加入
<ADDINS require="CmdShell"></ADDINS>
- 调用本地程序
//打开本地计算器
exec('calc.exe')
///使用IE打开百度网站
exec('"C:\\Program Files\\Internet Explorer\\iexplore.exe" "http://www.hisui.cn"');
- 使用环境变量打开
//使用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
- 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);
}
}
}
- exec运行条件说明
- IE浏览器,增加信任站点,且允许ActiveX运行
- 非IE浏览器使用时,请在客户端安装Chrome中间件
- cmd中
&,||,<,>为有意思的特殊字符要加^来转义,如果使用双引号”包裹内容则不用转义,cmd('"xx.exe" abc.com?a=1^&b=2')或cmd('"xx.exe" "abc.com?a=1&b=2"')
- 常见问题
- 域控下调用失败问题,把环境变量中%SystemRoot%向下移动2位

- 如果会快速弹出用户确认框,请安装TweakUAC.exe – 选【Leave UAC Off】 – 安装
- 域控下调用失败问题,把环境变量中%SystemRoot%向下移动2位
