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('/') + '/';

/代わりに を使用していることに注意してください。最後にを使用\するのも便利なので、関数の引数に追加する必要はありません。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 に答える