| 
	
		|  Autor | Tema: Pulsando teclas con visual basic  (Leído 16,308 veces) |  
	| 
			| 
					
						| 50l3r 
								 
								
								 Desconectado 
								Mensajes: 784
								
								 
								Solo se que se algo pero no me acuerdo
								
								
								
								
								
								     | 
 
Quiero realizar un mini proyecto para mi uso personal el cual haga esto
 Dejo el programa encendido
 
 Cuando yo presione f10 el programa se encienda y empieze a dar un bucle de clicks de raton
 
 Cuando le de al f11 que se detenga el proyecto
 
 
 Como haria para poder hacer tal cosa? es decir, el dar clicks izquierdos con un bucle
 
 gracias
 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Spider-Net 
								       
								
								 Desconectado 
								Mensajes: 1.165
								
								 
								Un gran poder conlleva una gran responsabilidad
								
								
								
								
								
								     | 
 
Mediante la API mouse_event Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private Const MOUSEEVENTF_LEFTDOWN = &H2Private Const MOUSEEVENTF_LEFTUP = &H4Private Const MOUSEEVENTF_MIDDLEDOWN = &H20Private Const MOUSEEVENTF_MIDDLEUP = &H40Private Const MOUSEEVENTF_MOVE = &H1Private Const MOUSEEVENTF_RIGHTDOWN = &H8Private Const MOUSEEVENTF_RIGHTUP = &H10
 Llamada: mouse_event MOUSEEVENTF_LEFTDOWN,100,100,0,0
 Harías click con el botón izquierdo en la posición (x,y) (100,100) Saludos
 
 |  
						| 
								|  |  
								| « Última modificación:  6 Junio 2009, 15:55 pm por Spider-Net » |  En línea | 
 
 |  |  |  | 
			| 
					
						| 50l3r 
								 
								
								 Desconectado 
								Mensajes: 784
								
								 
								Solo se que se algo pero no me acuerdo
								
								
								
								
								
								     | 
 
 Const KEYEVENTF_KEYUP = &H2 Const KEYEVENTF_EXTENDEDKEY = &H1   Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _     ByVal bScan As Byte, _     ByVal dwFlags As Long, _     ByVal dwExtraInfo As Long)    Sub Pulsar_Tecla(vbKeyLButton As Long)      Call keybd_event(vbKeyLButton, 0, 0, 0)      Call keybd_event(vbKeyLButton, 0, KEYEVENTF_KEYUP, 0) End Sub  Private Sub Timer1_Timer()Call Pulsar_TeclaEnd Sub
 Por ahora he hecho eso, pero me da error en el timer cuando llamo a la funcion pulsar tecla |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Spider-Net 
								       
								
								 Desconectado 
								Mensajes: 1.165
								
								 
								Un gran poder conlleva una gran responsabilidad
								
								
								
								
								
								     | 
 
Private Declare Function Getasynckeystate Lib "user32" Alias "GetAsyncKeyState" (ByVal VKEY As Long) As IntegerConst WM_NCLBUTTONDOWN = &HA1 Private Sub Timer1_Timer()On Error Resume NextDim keystate As Long keystate = Getasynckeystate(vbKeyF10)If (keystate And &H1) = &H1 Then    MsgBox "Has pulsado F10"End IfEnd Sub
 Saludos! |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| 50l3r 
								 
								
								 Desconectado 
								Mensajes: 784
								
								 
								Solo se que se algo pero no me acuerdo
								
								
								
								
								
								     | 
 
eso seria una parte del codigo pero aun estoy por la pulsacion del mouse: he cojido este codigo de recursos vb: ' Constantes para las teclas y otros Const KEYEVENTF_KEYUP = &H2Const KEYEVENTF_EXTENDEDKEY = &H1  'Declaración del Api keybd_event para la presión de tecla Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _    ByVal bScan As Byte, _    ByVal dwFlags As Long, _    ByVal dwExtraInfo As Long)   Sub Pulsar_Tecla(Tecla As Long)     Call keybd_event(Tecla, 0, 0, 0)     Call keybd_event(Tecla, 0, KEYEVENTF_KEYUP, 0) End Sub ' Presiona la tecla TabPrivate Sub Timer1_Timer()Call Pulsar_Tecla([b]vbKeyTab[/b])End Sub
 el vbkeytab lo cambio por chr(1) o vbkeylbutton y no me funciona me da este error: con chr(1): type mysmatch con vbkeylbutton: no ace nada ayuda plis  |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Spider-Net 
								       
								
								 Desconectado 
								Mensajes: 1.165
								
								 
								Un gran poder conlleva una gran responsabilidad
								
								
								
								
								
								     | 
 
Eh?? Pero estás intentando enviar las pulsaciones del mouse con la API keybd_event??? Esa API es para los eventos del teclado no del ratón :S. Por eso pensé que lo que intentabas era detectar que se había pulsado la tecla F10 :s Lo del ratón ya te he puesto arriba la API que tienes que usar mouse_event y también te he puesto un ejemplo de uso, que más quieres?    PD: vbkeylbutton no es, es vbKeyLeft, y esa es la flechita de dirección izquierda del teclado no del ratón, no puedes usar la api keybd_event para capturar eventos del ratón, no tiene sentido. Saludos. |  
						| 
								|  |  
								| « Última modificación:  6 Junio 2009, 15:59 pm por Spider-Net » |  En línea | 
 
 |  |  |  | 
			| 
					
						| 50l3r 
								 
								
								 Desconectado 
								Mensajes: 784
								
								 
								Solo se que se algo pero no me acuerdo
								
								
								
								
								
								     | 
 
okey thanks, me pondre con esa api    |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| h0oke 
								       
								
								 Desconectado 
								Mensajes: 2.059
								
								 
								Coder ~
								
								
								
								
								
								     | 
 
Mira este code lo hice recien...     Me hiciste acordar a algo que quería hacer en mis tiempo de juego     y nunca supe como hacerlo, hasta que bueno hoy en día ...   Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As IntegerPrivate Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)Private Const MOUSELEFTDOWN = &H2 '  left button down /This is actually MOUSEEVENTF_LEFTDOWNPrivate Const MOUSELEFTUP = &H4 '  left button up /This is actually MOUSEEVENTF_LEFTUPPrivate Const KEY_TOGGLED As Integer = &H1Private Const KEY_PRESSED As Integer = &H1000 Private Sub Form_Load()Text1.Text = "" 'Para configurar los intervalos de clicksTimer1.Enabled = FalseTimer2.Enabled = TrueEnd Sub Private Sub Timer1_Timer()    mouse_event MOUSELEFTDOWN, 0, 0, 0, 0 'left button goes down    mouse_event MOUSELEFTUP, 0, 0, 0, 0 'left button comes upEnd Sub Private Sub Timer2_Timer()If GetKeyState(vbKeyF10) And KEY_PRESSED Then    MsgBox "Apretaste f10!"    Timer1.Interval = Val(Text1.Text)'Lee el valor del textbox en MS    Timer1.Enabled = TrueElseIf GetKeyState(vbKeyF11) And KEY_PRESSED Then    MsgBox "Apretaste f11!"    Timer1.Enabled = FalseEnd IfEnd Sub
 |  
						| 
								|  |  
								| « Última modificación:  6 Junio 2009, 17:35 pm por Emt.dev » |  En línea | 
 
 |  |  |  | 
			| 
					
						| seba123neo | 
 
Hola, mejor usa RegistrerHotKey  y UnRegistrerHotKey asi no usas Timer...busca que hay en internet...
 saludos.
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| h0oke 
								       
								
								 Desconectado 
								Mensajes: 2.059
								
								 
								Coder ~
								
								
								
								
								
								     | 
 
Hola, mejor usa RegistrerHotKey  y UnRegistrerHotKey asi no usas Timer...busca que hay en internet...
 saludos.
 
 Ok me documentaré sobre eso.    |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  |  |  
 
	
 
   |