Creacion de Macros en Visual Basic [PROBLEMA]

Iniciado por Kalki, 19 Abril 2006, 05:51 AM

0 Miembros y 1 Visitante están viendo este tema.

Kalki

Bueno, me idea es la de crear un programa que al presionar X tecla de escriba o realice alguna accion deseada.
El problema es q no recuerdo como se hacia esto. Ya se q es una boludes, pero si alguien me podria ayudar se los agradeceria mucho =)

estuve leyendo este thread pero mucho q digamos no entendi.
http://foro.elhacker.net/index.php/topic,118926.0.html

Saludos,
Gastón.-

Kalki

Por favor, si alguien es capaz de sacarme esta duda se los agradeceria mucho.

Saludos,
Gastón.-

yalosabes

#2
holas, este codigo te kae a pelo, agregas un timer y nah mas , ah en este kaso se activa con el boton enter.


Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Dim Men As String, Palabra As Long


Private Sub Form_Load()
Timer1.Interval = 1
End Sub

Private Sub Timer1_Timer()
Palabra = Int((Rnd * 5) + 1)
Select Case Palabra
Case 1
        Men = "1 accion" '<- aky pones la accion o palabra
Case 2
        Men = "2 accion" '<- aky pones la accion o palabra

'vas aumentado por ejemplo
'case 3
'men = "blablabla" y asi sucesivamente , tambien puedes dejar solo el case 1

End Select

KeyResult = GetAsyncKeyState(13)
    If KeyResult = -32767 Then
         SendKeys Men   '
    End If
End Sub





NYlOn

Nonono, eso no te va a servir. Ese codigo lo que hace es elegir frases aleatorias y si se presiona la tecla enter la envia con sendkeys.
Algo adaptado a lo que necesitas seria:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Const VK_SHIFT = &H10

Private Sub Form_Load()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
If GetAsyncKeyStat(VK_SHIFT) < 0 Then 'Si se aprieta la tecla Shift
       Realizamos la accion deseada...
End If
End Sub


La constante VK_SHIFT seria la tecla SHIFT. Podes encontrar las constantes de las demas teclas en el API Viewer.

Saludos.-

LeandroA

cuando dice macros no se refiere a word o exel?, bien si es asi no podra contar con un Timer


Kalki

#5
Cita de: NYlOn en 20 Abril 2006, 01:38 AM
Nonono, eso no te va a servir. Ese codigo lo que hace es elegir frases aleatorias y si se presiona la tecla enter la envia con sendkeys.
Algo adaptado a lo que necesitas seria:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Const VK_SHIFT = &H10

Private Sub Form_Load()
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
If GetAsyncKeyStat(VK_SHIFT) < 0 Then 'Si se aprieta la tecla Shift
       Realizamos la accion deseada...
End If
End Sub


La constante VK_SHIFT seria la tecla SHIFT. Podes encontrar las constantes de las demas teclas en el API Viewer.

Saludos.-

Muchas gracias, la verdad que era eso lo q estaba buscando. EDIT: Ya solucione el problema que tenia :D

Desde ya, gracias nuevamente.

Saludos,
Gastón.-