在下面这篇博客里,我使用C#,写了一个命令,可以快捷的切换鼠标左右手习惯。
今天到了一个新环境,想用下这个命令,
却一时找不到编译好的文件,手头有没有visual studio的环境,
于是索性用Ruby将其重写,
原理一样, 都是调用win32 api修改左右收习惯,并修改注册表。
修改注册表的目的是,当电脑重启的时候, 我们的设置也依然有效。
Ruby脚本如下:
require "Win32API"
require 'win32/registry'
def switch_mouse_habit ()
sm_swapbutton = 23 # public const int SM_SWAPBUTTON = 23;
mouseStatus = Win32API.new('user32.dll', 'GetSystemMetrics',['L'], 'L').call(sm_swapbutton)
targetStatus = ( mouseStatus + 1 ) % 2
puts "original status: #{mouseStatus} ; target status: #{targetStatus}"
Win32API.new('user32.dll', 'SwapMouseButton',['L'], 'L').call(targetStatus)
# see: http://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/Win32::Registry
name = Win32::Registry::HKEY_CURRENT_USER.create "Control Panel\\Mouse"
#puts name["SwapMouseButtons"]
name.write_s "SwapMouseButtons", targetStatus.to_s
end
switch_mouse_habit()