Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 155
  • Last Modified:

Detecting a key combination from any other application.

I would like to be able to detect a key combination such as Crtl+G (or a single key for that matter) from my application when the key(s) are pressed in any other application.  Once the key(s) have been detected I would then like to copy some text to the other application (probably using sendkeys or the clipboard).  Any one have any ideas on how to detect the keyboard input?

Thanks in advance

~Ian
0
iankosh
Asked:
iankosh
1 Solution
 
covingtonCommented:
Use the GetAsyncKeyState API.

Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Const VK_CONTROL = &H11

You pass in VK_CONTROL and ASC("G") in succession like this:

    Do
        If (GetAsyncKeyState(VK_CONTROL)) Then
            If (GetAsyncKeyState(ASC("G"))) Then  
            'do your stuff here
            End If
        DoEvents
        Sleep 25    'this app does not even register 1% of processor time on most machines
                    'even though it's checking 40 times a second for keyboard events
    Loop

Make sure you include some way for breaking out of that loop so that you release the memory when you're done.
0
 
iankoshAuthor Commented:
Thanks very much! (Easy when you know the API call!!!)
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now