Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Detecting a key combination from any other application.

Posted on 1999-01-21
2
Medium Priority
?
154 Views
Last Modified: 2010-05-03
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
Comment
Question by:iankosh
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 3

Accepted Solution

by:
covington earned 800 total points
ID: 1469806
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
 

Author Comment

by:iankosh
ID: 1469807
Thanks very much! (Easy when you know the API call!!!)
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question