On Windows XP is there a way to test that a certain key has been pressed
without blocking?
I’ve tried using curses but it blocks the current thread and any other
thread until a key is pressed.
I want to give the user 10 seconds so make a selection before a default
action is taken.
Here is the test code I’ve got;
require 'curses'
include Curses
init_screen
noecho
trap(0) { echo }
t1 = Time.new
Thread.new do
#example timer thread
while(true) do
x = Time.new - t1
h = 3+3
setpos(12,10)
addstr("#{x}")
end
end
setpos(1,5)
addstr("Please select your location")
setpos(3,5)
addstr(" 1 - Work")
setpos(4,5)
addstr(" 2 - Home")
setpos(6,5)
addstr("Esc - Exit")
while (c = getch) != ?\e do
# check what key is pressed and do stuff
end
···
--
Posted via http://www.ruby-forum.com/.
Sard Aukary wrote:
On Windows XP is there a way to test that a certain key has been pressed
without blocking?
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/4435
···
From my quick search, I didn't find a way. Maybe this will help though?
--
Posted via http://www.ruby-forum.com/\.
search the archive for kbhit
···
On 9/8/06, Sard Aukary <sardaukary@yahoo.co.uk> wrote:
On Windows XP is there a way to test that a certain key has been pressed
without blocking?
I've tried using curses but it blocks the current thread and any other
thread until a key is pressed.
I want to give the user 10 seconds so make a selection before a default
action is taken.
Here is the test code I've got;
require 'curses'
include Curses
init_screen
noecho
trap(0) { echo }
t1 = Time.new
Thread.new do
#example timer thread
while(true) do
x = Time.new - t1
h = 3+3
setpos(12,10)
addstr("#{x}")
end
setpos(1,5)
addstr("Please select your location")
setpos(3,5)
addstr(" 1 - Work")
setpos(4,5)
addstr(" 2 - Home")
setpos(6,5)
addstr("Esc - Exit")
while (c = getch) != ?\e do
# check what key is pressed and do stuff
end
On Windows XP is there a way to test that a certain key has been pressed
without blocking?
I’ve tried using curses but it blocks the current thread and any other
thread until a key is pressed.
I want to give the user 10 seconds so make a selection before a default
action is taken.
require 'timeout'
begin
Timeout.timeout(10) do
key = gets
end
rescue Timeout::Error
key = default
end
···
On Friday 08 September 2006 20:42, Sard Aukary wrote:
Here is the test code I’ve got;
require 'curses'
include Curses
init_screen
noecho
trap(0) { echo }
t1 = Time.new
Thread.new do
#example timer thread
while(true) do
x = Time.new - t1
h = 3+3
setpos(12,10)
addstr("#{x}")
end
end
setpos(1,5)
addstr("Please select your location")
setpos(3,5)
addstr(" 1 - Work")
setpos(4,5)
addstr(" 2 - Home")
setpos(6,5)
addstr("Esc - Exit")
while (c = getch) != ?\e do
# check what key is pressed and do stuff
end
--
Weez International Limited
East Roppongi Bldg 5F, 509
3-16-35 Roppongi, Minato-ku Tokyo #106-0032
Tel: 81-(0)3-3505-3881 Fax: 81-(0)3-3505-3883
E-mail: manveru@weez-int.com
Website: http://weez-int.com