私はLinuxシステムでこの機能が本当に好きです。 Windowsシステムでも必要ですが、適切な解決策が見つかりませんでした。
これらの3つの解決策で遭遇した問題の適切な解決策または修正を誰かが見つけましたか?
この方法で試してください:
#NoEnv
#SingleInstance Force
mousedrag_treshold := 20 ; pixels
Hotkey mbutton, paste_selection
; #IfWinNotActive ahk_class ConsoleWindowClass
~lButton::
MouseGetPos, mousedrag_x, mousedrag_y
keywait lbutton, T0.3
If (ErrorLevel)
{
keywait lbutton
mousegetpos, mousedrag_x2, mousedrag_y2
if (abs(mousedrag_x2 - mousedrag_x) > mousedrag_treshold
or abs(mousedrag_y2 - mousedrag_y) > mousedrag_treshold)
{
; MouseGetPos,,,WindowUnderMouse
; WinGetClass, Class, ahk_id %WindowUnderMouse%
; If (Class != "ConsoleWindowClass")
sendinput ^c
hotkey mbutton, on
}
}
return
~lButton Up:: return
; #IfWinNotActive
paste_selection:
sendinput {lbutton}
SendInput ^v
return
最後に、上記のスクリプトを少し改善しました。クリップボードが占有されているかどうかを確認するifステートメントを追加し、貼り付け後にクリアしました。もう1つの改善点は、貼り付け後にホットキーのmボタンをオフにすることです。これにより、テキストを選択して次に[自動的に]コピーするまで、タブを閉じたりスクロールしたりするためのミドルクリックが妨げられません。
#NoEnv
#SingleInstance Force
mousedrag_threshold := 20 ; pixels
Hotkey mbutton, paste_selection
; #IfWinNotActive ahk_class ConsoleWindowClass
~lButton::
MouseGetPos, mousedrag_x, mousedrag_y
keywait lbutton, T0.3
If (ErrorLevel)
{
keywait lbutton
mousegetpos, mousedrag_x2, mousedrag_y2
if (abs(mousedrag_x2 - mousedrag_x) > mousedrag_threshold
or abs(mousedrag_y2 - mousedrag_y) > mousedrag_threshold)
{
; MouseGetPos,,,WindowUnderMouse
; WinGetClass, Class, ahk_id %WindowUnderMouse%
; If (Class != "ConsoleWindowClass")
sendinput ^c
hotkey mbutton, on
}
}
return
~lButton Up:: return
; #IfWinNotActive
変更された部分:
paste_selection:
if clipboard!=""
{
sendinput {lbutton}
SendInput ^v
Sleep, 200 ; Give some time for the text to be pasted.
clipboard = ; clear the clipboard
hotkey mbutton, off
}
return