Hatena::ブログ(Diary)

Cherenkovの暗中模索にっき RSSフィード Twitter

2011-08-23

AutoHotkeyを使ってホイールクリックで貼り付け(Chrome等で)

Vista SP2, Chrome13, AutoHotkey 1.1.02.03 で動作確認。

注意:chrome19で Chrome_WidgetWin_0 から Chrome_WidgetWin_1 に変更されました。

;chromeでホイールクリックしたら貼り付け
;ホイールクリックしながらドラッグでスクロールする機能を生かすために、キーが離されたらコピペする動作
#IfWinActive ahk_class Chrome_WidgetWin_0
~MButton::
KeyWait, MButton
send, ^v
return
#IfWinActive

#IfWinActive ahk_class Chrome_WidgetWin_0のとこをとっぱらってchrome以外も汎用的に動作することもできるけど、不都合がでたり自分が求めてないので。

と思ってたけど、「middlemouse.pasteに相当するuserChrome.js」を使う必要がなくなったり、意外と便利だったので汎用的にしてしばらく使ってみる。

;chromeでホイールクリックしたら貼り付け
;ホイールクリックしながらドラッグでスクロールする機能を生かすために、キーが離されたらコピペする動作
~MButton::
KeyWait, MButton
send, ^v
return

ホイールクリックでタブを閉じる人は、inputにフォーカスがある状態でタブを閉じるとペーストされちゃいますね。どうしたもんか。


追記

コピーした画像やテキストを右ダブルクリックでペーストする方法 : ライフハッカー[日本版] を参考にすることにした。

;Double Right Click to paste (http://www.lifehacker.jp/2009/07/post_1009.html)
~RButton::
If ((A_PriorHotKey = A_ThisHotKey) && (A_TimeSincePriorHotkey < 300)) {
  Sleep 200
  Send {Esc}
  Send ^v
}
Return

参考

*1

AutoHotkeyを使ってChromeのタブ切り替えをマウスホイールで行う

Vista SP2, Chrome13, AutoHotkey_L 1.0.92.02, AutoHotkey 1.1.02.03 で動作確認。


;chromeのタブ切り替えをマウスホイールで行う
#IfWinActive ahk_class Chrome_WidgetWin_0
~WheelUp::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgUp}
}
return


~WheelDown::
MouseGetPos, x, y
if (y < 45) {
  send, ^{PgDn}
}
return
#IfWinActive

追記

ウィンドウの下の方(下から15%の高さ)でもタブ切り替えできるように改造した。普通のサイトだとスクロール位置がずれるけど主に画像ファイルで使うので気にしない。

#IfWinActive ahk_class Chrome_WidgetWin_0
~WheelUp::
MouseGetPos, x, y
WinGetActiveStats, title, width, height, winx, winy
if (y < 45) {
  send, ^{PgUp}
} else if ( y > height * 0.85 && y < height) { ;ウィンドウの下の部分でもタブ切り替えができるように。スクロール位置がずれたりするけど対応できなかった
  send, {click, WheelDown}^{PgUp}
}
return

~WheelDown::
MouseGetPos, x, y
WinGetActiveStats, title, width, height, winx, winy
if (y < 45) {
  send, ^{PgDn}
} else if ( y > height * 0.85 && y < height) {
  send, {click, WheelUp}^{PgDn}
}
return
#IfWinActive


参考

*1:中クリック middle click mouse ミドル マウス