Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Reading Keyboard Scan Codes

Reply
Thread Tools

Reading Keyboard Scan Codes

 
 
Michael Bendzick
Guest
Posts: n/a
 
      07-23-2003
Is there a simple way in python to read a keyboard scan code? I'm
working on a shell script that interfaces with a proprietary keyboard
device (extra buttons) and need to be able to distinguish between
those keys.

Thank you
 
Reply With Quote
 
 
 
 
=?iso-8859-1?q?Fran=E7ois_Pinard?=
Guest
Posts: n/a
 
      07-23-2003
[Michael Bendzick]

> Is there a simple way in python to read a keyboard scan code? I'm working
> on a shell script that interfaces with a proprietary keyboard device
> (extra buttons) and need to be able to distinguish between those keys.


Within Linux in console mode, you merely do:

os.system('kbd_mode -k')

to read key codes, which might be what you want, or:

os.system('kbd_mode -s')

to really read raw scan codes. To get back on your feet, do:

os.system('kbd_mode -a')

Beware that you can easily burn yourself if your program fails to restore
normal mode, as per last example. Use try/finally! You should probably use
the `curses' module for preparing to read codes one byte at a time.[1]

However, I do not know if reading scan codes or key codes is easily done
within X, nor on MS-Windows. I would like finding or discovering recipes in
this area. So, please share your tricks in this area, if any!

--------------------
[1] I was given two different C programs written originally for QNX and its
own special `term' library, to be quickly ported to Linux, without rewriting
them if possible. To achieve this, I wrote a compatibility module in C, and
a more bulky keyboard driver module in Python, meant for key code assembly
into curses key events, and for any special keyboard processing. The link
between all parts was made using Pyrex, and a bit of Makefile trickery...

--
François Pinard http://www.iro.umontreal.ca/~pinard

 
Reply With Quote
 
 
 
 
Alan Gauld
Guest
Posts: n/a
 
      07-24-2003
On 23 Jul 2003 12:29:06 -0700, http://www.velocityreviews.com/forums/(E-Mail Removed)
(Michael Bendzick) wrote:

> Is there a simple way in python to read a keyboard scan code? I'm
> working on a shell script that interfaces with a proprietary keyboard
> device (extra buttons) and need to be able to distinguish between
> those keys.


The code to do this is on my programming tutor under Event Driven
Programming in the Advanced topics section. It uses Tkinter to
read and print the codes.

The critical part is this bit:

self.txtBox.bind("<Key>", self.doKeyEvent)


def doKeyEvent(self,event):
str = "%d\n" % event.keycode
self.txtBox.insert(END, str)
return "break"

self.txtBox is a standard Text widget in Tkinter.

If you can find my book you'll see the code to do it using
msvcrt.

Again the critical bit is:

key = mscvrt.getch()
if key == '\000' or key == '\xe0' #detect special keys
key = msvcrt.getch() # read the second byte.

HTH,

Alan G.
Author of the Learn to Program website
http://www.freenetpages.co.uk/hp/alan.gauld
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to use file I/o codes with form and controls codes Allen ASP .Net 1 12-03-2007 12:04 AM
Virtual Key Codes, Scan Codes and ASCII Codes in C gj_williams2000@yahoo.co.uk C Programming 2 08-20-2005 11:04 AM
RegEx replace of html codes to ascii codes Greg -- ASP .Net 4 08-09-2005 07:27 PM
Re: Reading Keyboard Scan Codes Francois Pinard Python 0 07-24-2003 01:44 AM
RE: Reading Keyboard Scan Codes Bjorn Pettersen Python 0 07-23-2003 10:29 PM



Advertisments