Jump to content
Corsair Community

How to get states ok keyboard key


ranma1988

Recommended Posts

Hi im trying to triger events when a key was pressed.

do anyone have a solution for this?

 

My current solution works onnly for a-z keys.

 

for (int i = 0; i < 255 i++)

{

if(GetAsyncKeyState(i))|

{

ledId = CorsairGetLedIdForKeyName((char)i);

//do action on ledId

}

}

 

the problem with this solution is that: CorsairGetLedIdForKeyName does not return values for ESC and any other key than a-z keys.

 

ESC(27) CorsairGetLedIdForKeyName -> CorsairLedId.CLI_Invalid

Link to comment
Share on other sites

  • 4 months later...

Try creating a windows "hook" with the function and create a map from the virtual keycodes to the corsair id's (in the CorsairLedIdEnum.h file from the SDK)

HHOOK WINAPI SetWindowsHookEx(
 _In_ int       idHook, // probably WH_KEYBOARD_LL for the keyboard
 _In_ HOOKPROC  lpfn, // the callback 
 _In_ HINSTANCE hMod,
 _In_ DWORD     dwThreadId
);

 

Example:

https://gist.github.com/Yannicked/23919888d759876221c3

Link to comment
Share on other sites

  • 1 year later...

not to revive an old post, but I was trying to get the register_callback.cpp example file from the latest SDK to recognize media keys. I was unable to simply add the VK_MEDIA_NEXT and STOP etc to the struct at the top of the example and in the includes and have them register within the callback example, but I'm assuming that was because the scope of that project was focused on the proprietary keys and the DLL call has something to do with it?

 

I realized the while loop at the bottom was a super bootleg way (once you comment out the getchar functions of the std io), of getting these to react with that same above mentioned function in windows.h of getasynchkeystate or similar.

 

This was my approach, but don't know if it is helpful to anyone:

http://www.smithany.com/register_callback.cpp

 

Very bottom being the relevant stuff. Yannicked, thank you for posting the low level keyboard hook, I will be trying that in place of what I'm doing now but I need to get a better handle on it.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...