elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pequeño problema en Visual Basic 6.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pequeño problema en Visual Basic 6.0  (Leído 9,959 veces)
Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Pequeño problema en Visual Basic 6.0
« en: 23 Agosto 2010, 17:01 pm »

Hola a toda la gente del foro:

Tengo un pequeño problema en Visual Basic 6. Verán: Estoy haciendo un sistema de adquisición de datos con un microcontrolador ATMEGA16, el cual se conecta a una PC mediante el puerto serie RS232. La interfaz de la PC la hice en Visual Basic 6.0, utilizando el control MSComm.

Al ejecutar el programa en el IDE todo funciona correctamente. Si lo compilo y ejecuto el archivo .EXE todo funciona correctamente. El problema viene cuando trato de ejecutar el archivo .EXE en una computadora que no tiene instalado Visual Basic (repito, el archivo .EXE, el compilado). Si trato de ejecutarlo me manda un mensaje de error, especificando que no se reconoce el componente MSComm1.

En este caso ¿Es forzoso que la PC deba tener instalado Visual Basic para que el programa se ejecute? ¿O sólo hay que instalar algún driver o algo así?


                     Gracias por su atención.

PD: Les informo que el problema lo solucioné instalando Visual Basic en la PC. Pero sería fastidioso instalar Visual Basic en cada una de las computadoras donde se tenga que ejecutar el programa. Por eso quisiera saber si hay alguna otra manera.


En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #1 en: 23 Agosto 2010, 17:33 pm »

HOLA!!!

Creo que tu problema es que tenes que instalar las dependecias (los dll y ocx) de tu exe en el otro PC

los pones en system32 y los registras

Listo!

GRACIAS POR LEER!!!


En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #2 en: 23 Agosto 2010, 18:35 pm »

Buen día mi cuate:

¿Sabes si hay alguna API para copiar un archivo de un lugar a otro de la PC?
Es decir, para que la misma aplicación instale las dll.

           Gracias.
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #3 en: 23 Agosto 2010, 19:34 pm »

puertos serie aqui tienes un Modulo de Clase para quitarte dependencias!¡.

Ojala te sirva

http://www.leandroascierto.com.ar/foro/index.php?topic=345.0

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #4 en: 24 Agosto 2010, 02:26 am »

Hola de nuevo:

Quiero agradecerle por contestar a mi pregunta; me sirvieron mucho sus respuestas. Saben, decidí hacer lo siguiente:

Cargar las ocx del mscomm en una carpeta junto con el programa que voy a instalar (dicho programa las requerirá, ya que usará el puerto serie RS232). También en la misma carpeta guardé un programa que hice en Visual Basic y que nombré "Instalador.exe". Ese programa realiza lo siguiente:

 - Examina "C:\WINDOWS\system32\" en busca de los archivos "MSCOMM32.ocx" y "COMDLG32.ocx". En caso de no encontrarlos, los copia (por eso el instalador, los ocx y el programa que ha de instalarse deben estar en la misma carpeta).

 - Copia en el disco C el programa que ha de instalarse (que en mi caso se llama "Project1.exe").
 
 - Manda un mensaje avisando que terminó la instalación.

   Este programa "Instalador.exe" me ahorra el tener que copiar el software que ha de instalarse y también los ocx. Todo se hace con un sólo click.

Aquí les dejo un archivo RAR con las ocx y los programas "Project1.exe" e "Instalador.exe".

http://rapidshare.com/files/414750873/mscomm.rar

Voy a comentar el programa "Instalador" y en cuanto lo termine lo pongo.

      BlackZeroX, muchísimas gracias por el enlace. Ese módulo de clase ya lo ocuparé, si Dios quiere, en otra ocasión, ya que el programa de comunicación serie es un poco largo y no quise estarle haciendo modificaciones. Pero en verdad, muchas gracias.

                      Saludos y que se la pasen bien.
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #5 en: 24 Agosto 2010, 08:04 am »

- Copia en el disco C el programa que ha de instalarse (que en mi caso se llama "Project1.exe").
 - Manda un mensaje avisando que terminó la instalación.

Te falto llamar a "regsvr32 archivo.ocx" para registrarlo y estar bien seguro :)
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #6 en: 24 Agosto 2010, 10:49 am »

Con este simple Batch se registran TODAS las DLL y OCX que haya en el equipo... :P
Código
  1. regsvr32 /s *.dll
  2. regsvr32 /s *.ocx

DoEvents¡! :P
« Última modificación: 24 Agosto 2010, 10:54 am por *PsYkE1* » En línea

Tokes

Desconectado Desconectado

Mensajes: 140


Ver Perfil
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #7 en: 24 Agosto 2010, 18:35 pm »

Pues bien, este es el código del "instalador" (entre comillas, porque sólo copia, no instala):

Código:
Option Explicit

Private Sub Form_Load()
Dim x As Long
Dim Directorio As String 'Esta variable almacenará el directorio actual.

    On Error Resume Next  'Se producirá un error si el archivo especificado
                          'no existe.
                         
    'Primero obtiene el directorio desde donde se está ejecutando el programa.
    ChDir App.Path
    ChDrive App.Path
    Directorio = App.Path
    If Len(Directorio) > 3 Then
        Directorio = Directorio & "\"
    End If
   
    'Ahora verifica si existe el archivo MSCOMM32.ocx en la carpeta system32.
    Err.Number = 0  'Limpia la variable de error.
   
    'La función GetAttr() retorna los atributos de un archivo o carpeta.
    x = GetAttr("C:\WINDOWS\system32\MSCOMM32.ocx")
    If Err.Number = 53 Then   'Si no se encuentra el archivo lo copia.
        'Se supone que el archivo MSCOMM32.ocx se encuentra en el mismo directorio
        'que la aplicación.
        x = CopyFile(Directorio & "MSCOMM32.ocx", "C:\WINDOWS\system32\MSCOMM32.ocx", True)
        'Si no se encuentra el archivo en el mismo directorio que la aplicación...
        If x = 0 Then
            MsgBox "Hace falta un archivo OCX", vbOKOnly, "Error"
            End
        End If
    End If
   
    'Ahora verifica si existe el archivo COMDLG32.ocx en la carpeta system32.
    Err.Number = 0 'Borra la variable de error.
    x = GetAttr("C:\WINDOWS\system32\COMDLG32.ocx")
    If Err.Number = 53 Then 'Si no existe el archivo lo copia.
        x = CopyFile(Directorio & "COMDLG32.ocx", "C:\WINDOWS\system32\COMDLG32.ocx", True)
        'Si el archivo no se encuentra en el mismo directorio de la aplicación...
        If x = 0 Then
            MsgBox "Hace falta un archivo OCX", vbOKOnly, "Error"
            End
        End If
    End If
   
    'Ahora copia la aplicación a "instalar" en el disco C.
    x = CopyFile(Directorio & "Project1.exe", "C:\ProjectComm.exe", True)
    If x = 0 Then 'Si no existe el archivo manda un mensaje de error.
        MsgBox "No se pudo realizar la instalación", vbOKOnly, "Error"
    Else
        'Si el archivo existe y fue copiado sin problemas...
        MsgBox "La instalación se ha realizado exitosamente." & Chr(13) _
        & "Nombre del archivo: C:\ProjectComm.exe", vbOKOnly, "Instalación finalizada"
    End If
    End
End Sub

Y en el módulo bas:

Código:
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Ahora, mis estimados colegas, mi nueva pregunta: ¿El código para registrar las dll/ocx en qué parte lo pongo?

                Por su atención, muchísimas gracias.
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #8 en: 24 Agosto 2010, 18:44 pm »

Si lo que quieres crear es un setup usa esto:
http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/110-instalador-para-visual-basic-create-install-free.htm

Citar
En registrar, se debe incluir los ocx, dll y archivos tlb para registrarlos en el sistema. y también desde esta solapa se pueden incluir archivos de fuentes , y otra opción para registra las extensiones de archivo para el programa

DoEvents¡! :P
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: Pequeño problema en Visual Basic 6.0
« Respuesta #9 en: 20 Enero 2019, 22:00 pm »


Versión: 6.1.97.82
https://workupload.com/file/aG9NXVC8

Desintala las versiones que tengas, mueve éste a la carpeta de windows\system32 y regístralo en dicha ruta...

el comando para registrar es:
Regsvr32 "ruta completa\richtx32.ocx"
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
pequeño virus en visual basic.net 2008
.NET (C#, VB.NET, ASP)
eidriansdito 8 8,627 Último mensaje 18 Junio 2011, 02:24 am
por AlxSpy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines