Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 12/10/2015 at 06:50, xxxxxxxx wrote:
I want to get the character that the user pressed on the keyboard.
I am using some code posted here on the forum, but the value is always > 128. How to get the character the user pressed?
channel = bc.GetLong(c4d.BFM_INPUT_CHANNEL) print "channel: ", channel if channel<128: # ascii key code chr = str(unichr(channel)) print chr if chr=='B': return True
On 13/10/2015 at 01:47, xxxxxxxx wrote:
Hello,
to get the string representation of the character pressed use BFM_INPUT_ASC. You see how it is used in the Liquid Painter tool example.
Best wishes, Sebastian
On 19/10/2015 at 04:38, xxxxxxxx wrote:
Thanks. I can now use it in a commandplugin message:
dev = bc.GetInt32(c4d.BFM_INPUT_DEVICE) if dev == c4d.BFM_INPUT_KEYBOARD: print "Keyboard, qual, VALUE: ", bc.GetInt32(c4d.BFM_INPUT_QUALIFIER), bc.GetString(c4d.BFM_INPUT_ASC) return True
but it is not working in the coremessage of a message plugin. I am doing this because the message plugin always detects the keyboard and my own plugin only when it is active. Is a ">" detected, then a messsage is send from the message plugin to my own pluhin.
-Pim
On 19/10/2015 at 09:25, xxxxxxxx wrote:
do you mean with "message plugin" a MessageData plugin? Could you post some more complete code? Since the original question is answered you might want to open a new thread.