
Uno strumento per creare un file JScript che carica un assembly .NET v2 dalla memoria.
Questo file fa parte di DotNetToJScript - Uno strumento per generare un JScript che avvia un'Assembly .NET e una classe arbitrari. Copyright (C) James Forshaw 2017
DotNetToJScript è software libero: è possibile ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, versione 3 della Licenza, o (a propria scelta) qualsiasi versione successiva.
DotNetToJScript è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UNO SCOPO PARTICOLARE. Vedere la GNU General Public License per maggiori dettagli.
Si dovrebbe aver ricevuto una copia della GNU General Public License insieme a DotNetToJScript. In caso contrario, vedere http://www.gnu.org/licenses/.
Note sull'utilizzo:
Funziona solo da JScript a attendibilità piena (ovviamente), quindi dovrebbe funzionare in scriptlet ecc. Per impostazione predefinita funziona solo se è installato v2/v3/v3.5. Tuttavia, se si specifica l'opzione '-ver auto' durante la generazione dell'output, funzionerà anche solo su v4+, ma ciò introdurrà una dipendenza da WScript.Shell che potrebbe non essere desiderata.
Per utilizzarlo è necessario creare un assembly destinato a .NET 2 (anche se nella maggior parte dei casi è possibile usare anche 3.5, poiché non si tende a vedere .NET 2 installato in isolamento. Nell'assembly implementare una classe chiamata TestClass che esegua qualcosa che si desidera fare nel costruttore pubblico senza parametri.
public class TestClass { public TestClass() { /* Start notepad */ Process.Start("notepad.exe"); } }
Assicurarsi che sia pubblica. Poi passare a questo strumento il percorso dell'assembly .NET. Se si annota la classe con l'attributo ComVisible è anche possibile interagire con l'oggetto dopo che è stato creato. Ad esempio:
[ComVisible(true)] public class TestClass { public void DoSomething(string arg) { } }
È possibile cambiare il nome della classe di ingresso usando l'opzione -c e aggiungendo il nome. È anche possibile far sì che lo strumento aggiunga codice aggiuntivo per interagire con l'oggetto specificando il parametro -s con il percorso di un file di testo contenente il JScript aggiuntivo. L'oggetto creato è denominato 'o', quindi ad esempio se si volesse chiamare il metodo DoSomething caricare un file contenente:
o.DoSomething("SomeArg");
La modalità predefinita è quella di produrre un file JScript che può essere eseguito in Windows Scripting Host. Tuttavia, se si desidera uno scriptlet passare -m (per uno scriptlet utilizzabile da un moniker scriptlet) oppure -u (per uno scriptlet che può essere usato da regsvr32). È anche possibile specificare l'opzione '-l vba' per produrre un file VBA che dovrebbe funzionare nelle Macro di Office oppure '-l vbscript' per VBScript.
Infine, per impostazione predefinita lo strumento scrive su stdout; è possibile scrivere direttamente su un file usando l'opzione -o.