3 Stimmen

Hta/ javascript Wie man eine Anwendung mit relativen Pfad ausführt

Ich baue eine .hta (mit JavaScript), aus der ich mehrere Anwendungen starten möchte.

Aber wenn ich meine .hta ausführe, erhalte ich die Fehlermeldung "Datei nicht gefunden"

Das ist der Code:

    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");

5voto

Teemu Punkte 22113

window.location.href umfasst auch den Dateinamen und das Protokoll. Versuchen Sie dies:

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

Beachten Sie die Verwendung von / anstelle von \, und es ist auch praktisch, relpath mit / zu beenden, damit Sie es nicht zum Funktionsargument hinzufügen müssen.

BEARBEITEN

Ich bin mir nicht sicher, was Sie mit dem Erhalten des Speicherorts ohne Datei meinen, vielleicht dies (Zitat aus Windows Skripting Technologies (leider jetzt defekt):

"Der CurrentDirectory gibt einen String zurück, der den vollständigen Pfad des aktuellen Arbeitsverzeichnisses des aktiven Prozesses enthält."

Der aktive Prozess ist zum Beispiel die laufende HTA, so dass dies den lokalen Pfad der HTA-Datei (ohne Dateinamen) liefert.

currentDirectory ist eine Eigenschaft von WScript.Shell, so dass Sie sie in Ihrem Code mit WshShell verwenden können, auch um das Arbeitsverzeichnis festzulegen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X