hta / javascript如何使用相对路径执行应用程序

时间:2012-12-12 15:55:36

标签: javascript html wsh hta

我正在构建一个.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>

1 个答案:

答案 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文件的本地路径(没有文件名)。

currentDirectoryWScript.Shell的属性,因此您可以在代码中使用WshShell,也可以设置工作目录。