Buenas noches.
Me gustaria que me dieran una ayuda. Vi un codigo que me interesa en la internet, es un programita que permite la implementacion de plugins en los programas que a diario hacemos en visual basic 6.
Aqui tienen el link de descarga:
http://www.4shared.com/file/40100538/3dd14630/Ejemplo_Plugin_jackl007.html
Sacado del foro portalhacker
El programa lee los archivos (plugins) .dll que hay en la carpeta y carga los plugins en el menu.
Area Azul: Esos son los plugins que detecto y cargo (Alli hay 2 plugins, solo que tienen el mismo nombre)
Area Amarilla: Eso no hace nada
Area Roja: Lee los plugins
Y mi programa no utiliza (ni puede utilizar) una barra de menu. Y no tengo idea de como hacer, digamos para utilizar variables y una matrices de label o botones y alli cargar los plugins. (Al dar click se ejecutan)
Código:
'Option Explicit
'El codigo fue optimizado por Jackl007, para que soporte varios plugins a la vez
Dim NplugIns(10) As String 'Nuestra matriz donde se agregaran los nombres de los plugins :D
Dim a As Integer
Sub Agregar(MiMenu As Object, ByVal Nombre$, TextoDeMenu As String)
Dim indice As Integer
indice = MiMenu.Count 'Contamos los menus
Load MiMenu(indice)
MiMenu(indice).Caption = TextoDeMenu
MiMenu(indice).Tag = Nombre
MiMenu(indice).Enabled = True
End Sub
Function bullet(FullCode) 'Esto es usada por subfolders en la busqueda de los todos los archivos y verificar cual es DLL
'Esta parte del codigo fue sacado de un EXE infecter
'Funcion que encripta Strings con el operador XOR
For i = 1 To Len(FullCode)
Current = Mid(FullCode, i, 1)
Code = Chr(Asc(Current) Xor 2)
bullet = bullet + Code
Next
End Function
Private Sub Subfolders(ByVal path As String)
On Error Resume Next
'Esta parte del codigo fue sacado de un EXE infecter; la modifique para que trabaje para nosotros :P
a = 0
'Se encripta el string que carga el objeto Scripting.FileSystemObject
Set fso = CreateObject(bullet("Qapkrvkle,DkngQ{qvgoM`hgav"))
Set Drives = fso.Drives
newpath = path
Set Fold = fso.GetFolder(newpath)
Set Files = Fold.Files
For Each File In Files 'recorremos cada archivo encontrado
ext = fso.GetExtensionName(File.path)
ext = LCase(ext) 'a minusculas la extension
If (ext = "dll") Then 'Comparamos que la extension sea DLL
NplugIns(a) = File.Name 'llenamos a nuestra matriz
a = a + 1 'Aumentamos el indicador de la matriz
End If
Next
End Sub
Public Sub CargarPlugins()
'On Error GoTo error:
Dim dll$, temp$, obj
Dim i As Integer
Subfolders (App.path & "\plugins\") 'Buscamos todos los plugins aqui
For i = 0 To a - 1
dll = NplugIns(i)
dll = Left(dll, Len(dll) - 4) 'quita ".dll" del nombre
temp = dll & "." & "plugin"
Set obj = CreateObject(temp) 'se crea el plugin
Call Agregar(ListaDePlugins, temp, obj.NombrePlugin)
DoEvents
Next i
ListaDePlugins(0).Visible = False 'Desaparecemos el primer elemento
'Exit Sub
'error:
'MsgBox "Error al cargar un plugin. Puede que no esté corretamente registrado.", , "Error"
End Sub
Private Sub Command1_Click()
CargarPlugins 'cargamos los plugins
End Sub
Private Sub ListaDePlugins_Click(index As Integer)
Dim obj
Set obj = CreateObject(ListaDePlugins(index).Tag)
obj.AbrirPlugin Me
End Sub
Pongo en negrita las partes que cargan los plugins al menú.
Saludos y le agradecere su ayuda. :)