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

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Error en tiempo de ejecucion: El componente activex no puede crear el objeto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en tiempo de ejecucion: El componente activex no puede crear el objeto  (Leído 4,658 veces)
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Error en tiempo de ejecucion: El componente activex no puede crear el objeto
« en: 8 Diciembre 2009, 02:20 am »


Desde el ide muestra el MSGBOX pero no funciona la funcion y cuando genero el exe y llamo la dll me da el erro del titulo le dejo el code:
Ojala puedan ayudarme

Proceso.exe
Código
  1. Private Declare Function DllMain Lib "Loader.dll" () As String
  2.  
  3. Private Sub Command1_Click()
  4. DllMain
  5. End Sub
  6.  
Loader.dll
Código
  1.  
  2.  
  3.  
  4.  
  5.  
  6. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  7.  
  8. ' Funciòn APi para buscar Ventanas de Windows
  9. Public Declare Function FindWindow _
  10.    Lib "user32" _
  11.    Alias "FindWindowA" ( _
  12.        ByVal lpClassName As String, _
  13.        ByVal lpWindowName As String) As Long
  14.  
  15.  
  16. 'Para finalizar dicha ventana
  17. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  18.                 ByVal hwnd As Long, _
  19.                 ByVal wMsg As Long, _
  20.                 ByVal wParam As Long, _
  21.                 lParam As Any) As Long
  22.  
  23. Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
  24.     ByVal hwnd As Long, _
  25.     ByVal lpOperation As String, _
  26.     ByVal lpFile As String, _
  27.     ByVal lpParameters As String, _
  28.     ByVal lpDirectory As String, _
  29.     ByVal nShowCmd As Long) As Long
  30.  
  31.  
  32. Public Sub Comprobar()
  33. Dim clase As String
  34. clase = ThunderRT6FormDC
  35. Dim ret As Long
  36.  
  37.    ' busca la ventana y retorna el Handle
  38.    ret = FindWindow(clase, "MuPaysandú V 1.0.59")
  39.  
  40.    'si retorna distinto _
  41.      de 0 es porque la encontró
  42.    If ret <> 0 Then
  43.                ' Finaliza la ventana
  44.             Log ("Launcher cerrado corectamente con el HWD " & ret)
  45.            SendMessage ret, "&H112", "&HF060&", ByVal 0
  46.  
  47.  
  48.  
  49.        Else
  50.        Log ("Launcher no encontrado.")
  51.        ret = FindWindow("MU", vbNullString)
  52.        If ret <> 0 Then
  53.            SendMessage ret, "&H112", "&HF060&", ByVal 0
  54.            Log ("Procediendo a cerrar el Cliente.")
  55.            Log ("Abriendo Launcher.")
  56.            ShellExecute ret, "Open", App.Path & "\MU.exe", vbNullString, "0", "1"
  57.            Else
  58.            Log ("MuPaysandu No encontrado.")
  59.        End If
  60.    End If
  61.  
  62. End Sub
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. Public Sub Log(Razon As String)
  70.    Open App.Path & "\log.txt" For Append As 1
  71.    Print #1, "[" & Date & "] " & Razon
  72.    Close #1
  73. End Sub
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. Public Function DllMain() As String
  82.         MsgBox "DLL CARGADA"
  83.          Comprobar
  84. End Function


« Última modificación: 8 Diciembre 2009, 07:06 am por shaggikpo » En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Funciones de Apis no me funcionan en una dll
« Respuesta #1 en: 8 Diciembre 2009, 02:52 am »

que es lo que no te funciona?.

SendMessage ret, WM_SYSCOMMAND, SC_CLOSE, ByVal 0

cierra la ventana pero no mata el proceso si la ventana no es la unica en ejecucion.

seguro que este es el nombre de clase ThunderRT6FormDC mira que si la aplicacion esta en ide es otro el classname.

Saludos.


En línea

shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Funciones de Apis no me funcionan en una dll
« Respuesta #2 en: 8 Diciembre 2009, 02:54 am »

Si el cass esta bien ya lo revise
el program cierra la primera ventana y lanza el proceso pero si inicio el proceso solo y la primera ventana no esta preceste el proceso actual debrei acerrarse y abier el MU.exe
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Error en tiempo de ejecucion: El componente activex no puede crear el objeto
« Respuesta #3 en: 8 Diciembre 2009, 10:18 am »

Solo una acotación, la clase de los formularios (ventanas) echos en VB se llaman "ThunderFormDC" si se ejecutan desde el IDE, pero esta clase cambia por "ThunderRT6FormDC" si  se ejecuta desde el exe compilado.


En línea

Adrian Desanti
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Error en tiempo de ejecucion: El componente activex no puede crear el objeto
« Respuesta #4 en: 8 Diciembre 2009, 23:08 pm »

Lo dices tan seguro pero no es asi sucede que si ves la class de la vantana de el exe compilado el cual se busca es la que yo puse aqui un a prueba si se dejan de decir eso ya que ese no es el problema.

En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Funciones de Apis no me funcionan en una dll
« Respuesta #5 en: 9 Diciembre 2009, 02:54 am »

seguro que este es el nombre de clase ThunderRT6FormDC mira que si la aplicacion esta en ide es otro el classname.

shaggikpo: No estoy diciendo que es tu problema, estoy haciendo una acotación sobre el tema de la clase del form de vb:

"ThunderFormDC" si se ejecutan desde el IDE,
"ThunderRT6FormDC" si se ejecuta compilado.

Código:
Option Explicit

Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Private Sub Form_Load()
 
  Me.AutoRedraw = True: Me.FontBold = True

  Dim ClassName As String: ClassName = Space$(255)
  Dim ret As Long: ret = GetClassName(Me.hwnd, ClassName, 255)
  Me.Print Left$(ClassName, ret)

End Sub



PD: me pareció importante pero perdón si te molestó.

En línea

Adrian Desanti
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines