S
Shin guey Wong
Is there any gem or ruby script to make irb command prompt in windows
color? I found a gem 'wirble' which is very nice but it only works in
Linux or Mac. It can't work in cygwin or windows command prompt. I
searching for hours on any windows command prompt which can show color
but couldn't make it, I only found some interactive python script to do
that...
Finally I had to search for any source code to show color in cmd prompt.
In the end I found 2 win32api to do that and luckily I can quickly
included in ruby using the ruby win32api call. Here are the 2 win32api
to show color:
#----------------------------------------------------------------------
require 'Win32API'
get_std_handle = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
set_console_txt_attrb =
Win32API.new("kernel32","SetConsoleTextAttribute",
['L','N'], 'I')
hout = get_std_handle.call(-11)
set_console_txt_attrb.call(hout,7)
puts 'default command prompt color'
set_console_txt_attrb.call(hout,12)
puts 'command prompt red color text'
# the color range from 1 - 15 for black background color
# we also can change the input text color, I never try that, but I think
# it should be get_std_handle.call(-10) or -12....forgot already
#-----------------------------------------------------------------------
This script is working fine for me to print color text. Can anyone
integrate this windows coloring script into 'wirble' ? It is hard for me
to change the 'wirble' ruby script. It would be thankfully if anyone can
do that.
Regards,
Shin Guey
color? I found a gem 'wirble' which is very nice but it only works in
Linux or Mac. It can't work in cygwin or windows command prompt. I
searching for hours on any windows command prompt which can show color
but couldn't make it, I only found some interactive python script to do
that...
Finally I had to search for any source code to show color in cmd prompt.
In the end I found 2 win32api to do that and luckily I can quickly
included in ruby using the ruby win32api call. Here are the 2 win32api
to show color:
#----------------------------------------------------------------------
require 'Win32API'
get_std_handle = Win32API.new("kernel32", "GetStdHandle", ['L'], 'L')
set_console_txt_attrb =
Win32API.new("kernel32","SetConsoleTextAttribute",
['L','N'], 'I')
hout = get_std_handle.call(-11)
set_console_txt_attrb.call(hout,7)
puts 'default command prompt color'
set_console_txt_attrb.call(hout,12)
puts 'command prompt red color text'
# the color range from 1 - 15 for black background color
# we also can change the input text color, I never try that, but I think
# it should be get_std_handle.call(-10) or -12....forgot already
#-----------------------------------------------------------------------
This script is working fine for me to print color text. Can anyone
integrate this windows coloring script into 'wirble' ? It is hard for me
to change the 'wirble' ruby script. It would be thankfully if anyone can
do that.
Regards,
Shin Guey