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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Simular Click
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Simular Click  (Leído 9,867 veces)
ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Simular Click
« Respuesta #10 en: 1 Diciembre 2011, 17:52 pm »

Hola @raul338, estuve investigando la manera, pasé por WM_HOTKEY, pero no me dí tinta, es que la verdad
no sé como usarlo  :-\, ¿me ayudarías con un ejemplo, por favor?

Saludos y gracias!


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Simular Click
« Respuesta #11 en: 1 Diciembre 2011, 17:59 pm »

Dale una probada a ucHotKey :P en la parte de SetRules o similar


En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Simular Click
« Respuesta #12 en: 1 Diciembre 2011, 19:25 pm »

No puedo!  >:(

Citar
    Private Const WM_HOTKEY = &H312
        Private Const MOD_ALT = 1
        Private Const MOD_CONTROL = 2
        Private Const MOD_SHIFT = 4
        Private Const MOD_WIN = 8
       
    Private Type HotKey
        lKey As Integer
        hKey As Integer
    End Type

Ret es una aplicación Externa.

Citar
        Dim CtrlA As HotKey
        Dim Abrir As Integer
       
        Abrir = GlobalAddAtom("programaAbrir")
        CtrlA.lKey = vbKeyA
        CtrlA.hKey = &H11

        call RegisterHotKey(ret,Abrir, MOD_CONTROL, vbKeyA)
       
        Call SendMessage(ret, WM_HOTKEY, ByVal VarPtr(CtrlA), Abrir)
        Call UnregisterHotKey(ret, Abrir)
        Call GlobalDeleteAtom(Abrir)

Usé GetLastError y: "Invalid window; it belongs to other thread.", justo después de registrar el hotkey.

Pensé que sería así de sencillo  :-\

Saludos!

Jajajaja  :laugh:, Saludos!
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Simular Click
« Respuesta #13 en: 1 Diciembre 2011, 23:24 pm »

:huh: no, porque usas un Tipo de estructura? cuando deben estar los 2 en un long? x'D

4 bytes (long) = 2 bytes (Integer) KeyCode + 2 bytes (Integer) Modificadores (Control / ALt / Shift)

Por eso te recomende el uso de MakeDWord

Tenes que hacer

Código
  1. lHotKey = MakeDWord(VK_A, MOD_CONTROL)
  2. Call SendMessage(hwnd, WM_HOTKEY, 0, ByVal lHotKey)
  3.  
En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Simular Click
« Respuesta #14 en: 2 Diciembre 2011, 00:08 am »

Citar
no, porque usas un Tipo de estructura? cuando deben estar los 2 en un long? x'D
4 bytes (long) = 2 bytes (Integer) KeyCode + 2 bytes (Integer) Modificadores (Control / ALt / Shift)

 :xD, Según yo esa estructura de 2 integers, será reconocida como 1 long, compruebalo:

Citar
       
        CtrlL.hKey = vbKeyA '&H4C
        CtrlL.lKey = MOD_CONTROL '&H2
        Call CopyMemory(tHotK2, ByVal VarPtr(CtrlL), 8)

Ahora, de todas formas no me funciona... xD

Talvez sea por que es necesario registrar el HotKey, pero no sé como registralo en una ventana externa...

Saludos y gracias!

En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Simular Click
« Respuesta #15 en: 2 Diciembre 2011, 01:25 am »

:xD, Según yo esa estructura de 2 integers, será reconocida como 1 long, compruebalo:
Si pero nunca supe cual iria primero y cual ultimo (ejem, importa la diferencia entre el hiWord y el loWord aca :P)

Mm... el ultimo recurso, enviar WM_NOTIFY con notificaciones estilo HotKey :P
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Simular Click
« Respuesta #16 en: 2 Diciembre 2011, 06:33 am »

proba usar PostMessage(), aca tenes un ejemplo que le manda ALT + F4  a la calculadora y la cierra.

Código
  1. Option Explicit
  2.  
  3. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  4. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  5. Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
  6.  
  7. Private Const WM_SYSKEYUP = &H105
  8. Private Const WM_SYSKEYDOWN = &H104
  9.  
  10. Private Const VK_F4 As Long = &H73
  11.  
  12. Private Sub Command1_Click()
  13.    Dim vHWND As Long
  14.    vHWND = FindWindow("CalcFrame", vbNullString)
  15.  
  16.    Call BringWindowToTop(vHWND)
  17.  
  18.    Call PostMessage(vHWND, WM_SYSKEYDOWN, VK_F4, &H3E0001 Or &H20000000)
  19.    Call PostMessage(vHWND, WM_SYSKEYUP, VK_F4, &H3E0001 Or &H20000000)
  20. End Sub

"CalcFrame" es el nombre de clase de la ventana de la calculadora en windows 7, en windows XP es "SciCalc".

saludos.
En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Simular Click
« Respuesta #17 en: 2 Diciembre 2011, 07:10 am »

Hola @seba123neo, no logro descifrar "lParam"...

Citar
Call BringWindowToTop(vHWND)

Emmm, es necesario?

Saludos y gracias!
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Simular Click
« Respuesta #18 en: 2 Diciembre 2011, 09:11 am »

No es nesesario usar: BringWindowToTop() ya que el mensaje aun asi llegara sin problemas, esto se debe a que se simula con MENSAJES en el callback de la ventana de manera directa, mas no se simula el click de alguna manera con el mouse fisico o similar.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Simular Click
« Respuesta #19 en: 2 Diciembre 2011, 09:21 am »

Si pero nunca supe cual iria primero y cual ultimo (ejem, importa la diferencia entre el hiWord y el loWord aca :P)

http://foro.elhacker.net/programacion_visual_basic/recopilacion_de_funciones_con_operaciones_binarias-t329680.0.html;msg1651093#msg1651093

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Simular click de raton
.NET (C#, VB.NET, ASP)
Gorky 7 12,261 Último mensaje 11 Septiembre 2009, 05:01 am
por Zzombi
[Duda | Solucionado] Capturar evento global y simular click
.NET (C#, VB.NET, ASP)
Shout 3 4,078 Último mensaje 13 Julio 2013, 05:22 am
por Shout
[Ayuda] Simular un click del mause con sendkeys vbKeyLButton
Scripting
Flamer 3 5,347 Último mensaje 9 Marzo 2015, 20:52 pm
por Eleкtro
[Ayuda] Simular un click del mause
Programación Visual Basic
Flamer 3 2,900 Último mensaje 11 Marzo 2015, 05:49 am
por Flamer
C# - Simular Click en otra aplicacion
.NET (C#, VB.NET, ASP)
NOIS 1 4,512 Último mensaje 10 Mayo 2016, 21:10 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines