Hola a todos.
Veran, intento averiguar como ejecutar 1 linea de codigo almacenada en 1 string.
Les explico:
Supongamos que la constante A es 1 string y contiene
Me.show
como podria hacer que se ejecutara esa orden ?
Estoy buscando a ver si encuentro algun metodo o API que me permita hacerlo, pero por ahora en VB no se hacerlo.
No me vale un if y then ejecutar orden.
No se si la funcion ExecuteLine vale en VB y tampoco se
como se declara.
Estoy buscando.
Podria alguien hecharme 1 mano ?
Buenas, yo en eso estoy Sr.Krnl64 :)
La declaracion de la API es:CitarPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal StringToExec As Long, ByVal Foo1 As Long, ByVal Foo2 As Long, ByVal fCheckOnly As Long) As Long
Y una funcion posible seria:CitarFunction FExecuteCode(stCode As String, Optional fCheckOnly As Boolean) As Boolean
FExecuteCode = EbExecuteLine(StrPtr(stCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Con VBScript Object's seria:CitarFunction ejecutar(sName As String, sData As String)
On Error GoTo Error:
Dim SC
Set SC = CreateObject("ScriptControl")
Dim Funcion As String
Funcion = sData
SC.language = "VBScript"
SC.addcode Funcion
Dim RESULTADO As String
RESULTADO = SC.run(sName)
Exit Function
Error:
MsgBox "Error!"
End Function
Ahora bien,
¿Alguien sabe otro metodo que no sea usando API's ni VBScript?todavía sigo intentando crear una funcion como ExecuteLine pero no lo consigo, por favor, seria de mucha utilidad si al menos me digan que NO conocen.
Espero haberte ayudado Krnl64 :)
Saludos.
Gracias .
Ya la habia averiguado yo y estoy lo mismo que tu.
Intentando a ver de donde o como me "fabrico" una funcion que haga lo mismo sin depender de la libreria vba6.dll
Salu2
Si lo logro lo publicare aca, espero lo mismo de tu parte, tratando de decompilar librerias no tiene sentido, asi que ni intentes, llevo mas de una semana intentando y buscando pfff.
Suerte