2

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

1 回答 1

4

window.location.href也包括文件名和协议。试试这个:

var relpath = window.location.pathname.replace(/\\/g,'/').split('/');
relpath.pop();// JScript: relpath.length = relpath.length - 1;
relpath = relpath.join('/') + '/';

注意使用了/instead ,最后使用\也很方便,所以你不需要将它添加到函数参数中。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,也可以设置工作目录。

于 2012-12-12T16:26:45.193 回答