我正在构建一个.hta(使用javascript),我想从中启动多个应用程序。
但是当我执行我的.hta时,我得到的错误信息找不到文件
这是代码:
<script type="text/javascript" language="javascript">
function RunFile(path) {
var relpath = window.location.href;
var fullpath = relpath + path;
WshShell = new ActiveXObject("WScript.Shell");
WshShell.Run(fullpath, 1, false);
}
RunFile("\file.exe");
</script>
答案 0 :(得分:3)
window.location.href
也包含文件名和协议。试试这个:
var relpath = window.location.pathname.replace(/\\/g,'/').split('/');
relpath.pop();// JScript: relpath.length = relpath.length - 1;
relpath = relpath.join('/') + '/';
请注意使用/
代替\
,使用relpath
结束/
也很方便,因此您无需将其添加到函数参数中。
修改强>
我不确定你在没有文件的情况下获取位置是什么意思,也许这是(来自Windows Sripting Technologies的引用):
"The CurrentDirectory returns a string that contains the fully qualified path of
the current working directory of the active process."
活动进程例如是正在运行的HTA,因此这将给出HTA文件的本地路径(没有文件名)。
currentDirectory
是WScript.Shell
的属性,因此您可以在代码中使用WshShell
,也可以设置工作目录。