help for using msvcrt.kbhit() with Python 2.3 editors?

dbrown2 at yahoo.com dbrown2 at yahoo.com
Wed Aug 13 22:29:21 CEST 2003


I'm having some trouble using kbhit inside the editor enviroments. I'm
using win2000 with Python2.3 and win32all v157 versions.

Any pointer on how this should be handled would be appreciated.  Is
there another non-blocking way to detect a key press?

Here's the code that is causing the trouble.  If I run this by
double-clicking then it works as expected.  But if I run from IDLE or
PythonWin it basically never returns. msvcrt.kbhit() always returns 0
as far as I can tell by adding print statements.  I can't confirm it
but I seem to recall this worked at least with the PythonWin editor
environment under my previous Python 2.2 setup.

###########
import serial   # access to serial port
import time     # sleep command
import msvcrt   # detect keyboard key press events

ser = serial.Serial(0, 4800, timeout=0.25)
data = ''
while not msvcrt.kbhit():
    buf =  ser.read(10)
    if buf <> '': print buf
    #time.sleep(1)
    data = data + buf # concatenate buf onto data
ser.close()
###########

-- David




More information about the Python-list mailing list