
Ein Tool zum Erstellen einer JScript-Datei, die eine .NET v2-Assembly aus dem Speicher lädt.
Diese Datei ist Teil von DotNetToJScript – einem Tool zum Generieren eines JScript, das eine beliebige .NET-Assembly und -Klasse bootstrappt. Copyright (C) James Forshaw 2017
DotNetToJScript ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.
DotNetToJScript wird in der Hoffnung verteilt, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG, sogar ohne die implizite Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.
Sie sollten zusammen mit DotNetToJScript eine Kopie der GNU General Public License erhalten haben. Falls nicht, siehe http://www.gnu.org/licenses/.
Anwendungshinweise:
Dies funktioniert (offensichtlich) nur aus einem JScript mit vollständiger Vertrauensstellung, sollte also in Scriptlets usw. funktionieren. Standardmäßig funktioniert es nur, wenn v2/v3/v3.5 installiert ist. Wenn Sie jedoch beim Erstellen der Ausgabe den Schalter '-ver auto' angeben, funktioniert es auch nur mit v4+, was allerdings eine Abhängigkeit von WScript.Shell einführt, die Sie möglicherweise nicht wünschen.
Um dies zu nutzen, müssen Sie eine Assembly erstellen, die auf .NET 2 abzielt (wobei Sie in den meisten Fällen auch 3.5 verwenden können, da .NET 2 in der Regel nicht isoliert installiert vorgefunden wird. Implementieren Sie in der Assembly eine Klasse namens TestClass, die im öffentlichen, parameterlosen Konstruktor etwas ausführt, das Sie tun möchten.
public class TestClass { public TestClass() { /* Start notepad */ Process.Start("notepad.exe"); } }
Stellen Sie sicher, dass sie öffentlich ist. Übergeben Sie dann diesem Tool den Pfad zur .NET-Assembly. Wenn Sie die Klasse mit dem ComVisible-Attribut annotieren, können Sie sogar nach ihrer Erstellung mit dem Objekt interagieren. z. B.
[ComVisible(true)] public class TestClass { public void DoSomething(string arg) { } }
Sie können den Namen der Einstiegsklasse ändern, indem Sie den Schalter -c verwenden und den Namen hinzufügen. Sie können das Tool außerdem dazu bringen, zusätzlichen Code zur Interaktion mit dem Objekt hinzuzufügen, indem Sie den Parameter -s mit dem Pfad zu einer Textdatei angeben, die das zusätzliche JScript enthält. Das erstellte Objekt heißt 'o'. Wenn Sie also beispielsweise die Methode DoSomething aufrufen wollten, laden Sie eine Datei mit:
o.DoSomething("SomeArg");
Der Standardmodus besteht darin, eine JScript-Datei auszugeben, die im Windows Scripting Host ausgeführt werden kann. Wenn Sie jedoch ein Scriptlet wünschen, übergeben Sie entweder -m (für ein Scriptlet, das von einem Scriptlet-Moniker aus verwendet werden kann) oder -u (für ein Scriptlet, das von regsvr32 aus verwendet werden kann). Sie können außerdem den Schalter '-l vba' angeben, um eine VBA-Datei auszugeben, die in Office-Makros funktionieren sollte, oder '-l vbscript' für VBScript.
Schließlich gibt das Tool standardmäßig nach stdout aus; Sie können mit dem Schalter -o direkt in eine Datei ausgeben.