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:
Pongo en negrita las partes que cargan los plugins al menú.'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
Saludos y le agradecere su ayuda. :)