清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
#!/usr/bin/env ruby
# -*- coding: gb18030 -*-
# __FILE__ : hotkey.rb
# 2012-7
# ruby 1.9
#gem 1.8
#gem install win32-api windows-pr windows-api cstruct
#在Ruby中方便的调用Win32 API (使用windows-pr和CStruct) :
#http://www.w-yong.com/docs/ruby_win32_api.html
require 'rubygems'
require 'windows/window'
include Windows::Window
#打开D:\ruby193\lib\ruby\gems\1.9.1\gems\windows-pr-1.2.2\lib\windows\window.rb,
#加入这行 API.new('GetAsyncKeyState', 'L', 'I', 'user32')
module Windows
module Window
API.new('GetAsyncKeyState', 'L', 'I', 'user32')
end
end
class Hotkey
def ck(keycode)
GetAsyncKeyState(keycode.ord)
end
def press?(keycode)
GetAsyncKeyState(keycode.ord)
GetAsyncKeyState(keycode.ord) != 0
end
#显示按下的键
def guess
255.times{|x|
tmp = GetAsyncKeyState(x)
if tmp != 0
print "\n \"#{x.chr}\" pressed code=#{x} stat=#{tmp} "
end
}
end
def loopcheck
`title ctrl+c 退出`
loop do
sleep 0.02
#print("\nctrl:", ck(17), "\t" )
guess #具体win32 keycode的定义,搜索 Key Code Constants
cc if press?(17) and press?('C')
end
end
def cc
exit
end
end
if $0 == __FILE__
Hotkey.new.loopcheck
end