Jump to content
xisto Community

Programatically Holding Down Keys

Recommended Posts

I am working on some new interactivity effects for Pika Bot. These will allow Pika Bot to Hold Down/Release Keys. I know it has to be done using the Windows API but am at a loss when trying to figure out the SendInput function and its usage. Can anybody help me out on getting this done using C# or VB .NET?

Share this post

Link to post
Share on other sites

I don't think SendInput will work. It's for sending keystrokes. I've look into
WM_KEYDOWN - https://msdn.microsoft.com/en-us/library/ms646280(VS.85).aspx
and keybd_event of user32.dll - http://www.devx.com/vb2themax/Tip/19094

The 2nd example is for VB6, i believe it's not too hard to convert to vb.net. From there converting to c# is a lot easier.

WM_KEYDOWN will require you to use SendMessage or PostMessage API to send the key, read the MSDN doc for the details.

If you need to know p/invoke for any particular API, goto http://www.pinvoke.net/

They have the declaration for vb.net and c# there.

If the above don't works and you need a much lower level of sending keys, you might want to look into SetWindowsHookEx and WH_KEYBOARD_LL. These are for hooking up low level key press like alt+ctrl+del where you can never receive such event from the system in your normal app. From there, you can know how the message system works, and how to emulate ones

Let me know if you need more help, I can free sometime to try out some code later

Good Luck

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.