win32 ruby 全局热键
发布时间:2020-12-17 04:11:11 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/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 cs
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/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:ruby193librubygems1.9.1gemswindows-pr-1.2.2libwindowswindow.rb,#加入这行 API.new('GetAsyncKeyState','L','I','user32') module Windows module Window API.new('GetAsyncKeyState','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 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |