在下面這篇博客裏,我使用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()