Underc0de

Programación Scripting => Otros lenguajes Scripting => Mensaje iniciado por: Aincrad en Febrero 17, 2023, 11:53:20 AM

Título: [APORTE] [En Desarrollo] Interoperabilidad entre Windows Script Host y .NET
Publicado por: Aincrad en Febrero 17, 2023, 11:53:20 AM
hola que tal, se acuerdan de este Post? : [IMPRESIONANTE] Crear Formularios en VBS! (https://underc0de.org/foro/scripting/impresionante-crear-formularios-en-vbs!/)

En el que comente hace dos años, bueno ya me he puesto manos a la obra, y vengo a compartir lo que llevo hecho .



Script.Interop.Net Es una biblioteca COM que agrega la capacidad de usar .NET Framework de lenguajes scripts de windows más antiguos; como VBScript/JScript.

Caracteriticas :


ahora bien, las caracteristicas que falta implementar :


las caracteristicas que tienen ❌ , significa que no tengo ni idea de como hacerlo.
Cualquier caracteristica adicional, son libres de comentar.



Como usar?:

1) Descargue la libreria COM y registrela. (el .zip ya trae un .bat , para registrar la libreria, ejecute el "Register COM.bat")

Descarga : Script.Interop.Net.zip (https://github.com/DestroyerDarkNess/Script.Interop.Net/releases/download/1.0/Script.Interop.Net.zip)

2) Cree su Script, agregare dos ejemplos en VBS .

- Cree y Maneje un Formulario .NET (Winform)

Código (vb) [Seleccionar]
' Call Core
Dim InteropDotNet  : Set InteropDotNet = CreateObject("Script.Interop.Net.Linker")
' Create Import/using (equivalent)
Dim AssemblyTarget : Set AssemblyTarget = InteropDotNet.GetAssembly("System.Windows.Forms")
' Get Form Class From AssemblyTarget
Dim ClassType : Set ClassType = AssemblyTarget.GetTypeByAssembly("Form")
' Create New Form Instance.
Dim FormNewInstance : Set FormNewInstance = ClassType.CreateInstance()
' Set Form Title
FormNewInstance.Text = "New Form"
' Show Form
FormNewInstance.ShowDialog()

 - Leer un archivo de texto (Desde .NET)

Código (vb) [Seleccionar]
'File Path Example
Dim FilePath : FilePath = "File.txt"

' Call Core
Dim InteropDotNet  : Set InteropDotNet = CreateObject("Script.Interop.Net.Linker")
' Create Import/using (equivalent)
Dim AssemblyTarget : Set AssemblyTarget = InteropDotNet.GetAssembly("mscorlib")
' Get Form Class From AssemblyTarget
Dim ClassType : Set ClassType = AssemblyTarget.GetTypeByAssembly("File")

'Get Methods By Name and Result Type
Dim Methods : Set Methods = ClassType.GetMethods("ReadAllText!String")

'Filter By Parameters and Call Function -> System.IO.File.ReadAllText(String)
Dim Result : Result = Methods.InvokeCall("-String " & FilePath)

' Show Content
Msgbox Result



Contribuciones

Son libres de ayudar en este proyecto, pueden comentar ideas o aportar directamente al codigo.

Source Code : https://github.com/DestroyerDarkNess/Script.Interop.Net (https://github.com/DestroyerDarkNess/Script.Interop.Net)


Gracias por leer!