作者bhbbbbb (斯马克)
看板EzHotKey
标题Re: [AHK-] 仅在限定视窗内 用左键长按取代中键
时间Wed Nov 25 17:22:09 2020
※ 引述《ushenli (ushenli)》之铭言:
: 想要用滑鼠左键长按 来取代中键
: 但只限定在 滑鼠指向的视窗 是chrome的时候生效
: 不然的话 平常就没办法用左键拖曳档案了
: 东抄西改後 现在这样写
: 不知为什麽 没办法限定只在chrome生效
: 想请问应该怎麽改 感谢!
: #中键不好按中指都快抽筋
: MouseGetPos, , , id, ctrl
: if InStr(ctrl,"Chrome") {
: $lbutton::
: starttime := a_tickcount
: keywait, lbutton
: return
: lbutton up::
: if (a_tickcount - starttime >= 500)
: send, {Mbutton}
: if (a_tickcount - starttime <= 500)
: send, {lbutton}
: return
: }
我自己觉得你的想法是可以做到的,但实务上应该还是不太方便,例如反白之类的动作可能
也会出问题。
总之我用「先按着右键不放,再按下左键」的这个方法来取代中键
这样的话就算是在其他的视窗应该也不太会出事(但下面的范例我还是让他只在chrome中作用
b := false
#If Ms_On_win("ahk_exe chrome.exe")
~Lbutton::
if (getkeystate("RButton", "P"))
{
sendInput, {Mbutton}
b := true
return
}
return
$RButton Up::
if(!b)
SendInput, {RButton Up}
return
RButton::
b := false
return
#IF
Ms_on_win(win_title) {
MouseGetPos, x, y, ms_win
if(WinExist(win_title . " ahk_id " . ms_win)) {
;WinActivate, ahk_id %ms_win%
return ms_win
}
else
return false
}
希望有帮到你
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 119.14.122.88 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1606296134.A.AD6.html
1F:推 ushenli: 谢谢斯马克大费心 原以为简单到五六行就可以实现呢 11/26 01:54
2F:→ ushenli: 按住右+左=中也不错说 我也只是参考游戏才想用长按替代中 11/26 01:54
3F:→ ushenli: 我用了你提供的code 但似乎无法点击选单 比如 11/26 01:54
把下面WinActivate那行去掉就会正常了,那时候想说这样可以避免某些问题,但没想到产生
了更大的问题XD。
※ 编辑: bhbbbbb (119.14.122.88 台湾), 11/26/2020 22:48:10