发表回复 
求助,AHK 使用中遇到的几个问题
2012-12-01, 21 : 48
求助,AHK 使用中遇到的几个问题
[i=s] 本帖最后由 Fuzlou 于 2012-12-2 01:15 编辑 [/i]

初学 AHK,看过中文帮助后,有几个问题没弄清楚,求解一下,谢谢诸君

第一个问题是多个脚本的热键优先级问题
比如两个脚本都设置了 #L:: 的映射,怎么设置脚本 A 中的热键优先执行呢

第二个问题是按住热键不放,热键重复速度太慢了的问题
比如设置了
代码: (全选)
h::
    MouseMove,  -5, 0,, R
按住 h 不放,鼠标会重复地向左移动 5 个像素,但是这个重复的速度太慢了,可不可以设置加快这个速度,比如每隔 20ms 就重复一次

第三个问题是多个 ahk 脚本的合并问题
如果有好几个 ahk 脚本,脚本中都有一些 Suspend 之类的命令,如果把她们合并的话,怎么才能使她们之间互不干扰呢
后宫们宫斗起来,死伤很惨重的


再次感谢
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 22 : 10
 
先回第一個問題:
有 SendLevel, Level 可設定優先級(預設是 0 值在1~100之間 值愈大愈優先)

第二個問題:
改用sendinput來發送
SetMouseDelay可修改延時

第三個問題我沒看懂,可以貼出腳本說明一下嗎?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 22 : 34
 
引用:先回第一個問題:
有 SendLevel, Level 可設定優先級(預設是 0 值在1~100之間 值愈大愈優先)

第二個問題:
改用sendinput來發送
SetMouseDelay可修改延時

第三個問題我沒看懂,可以貼出腳本說明一下嗎?
jony.tw 发表于 2012-12-1 22:10 [Image: back.gif]

非常謝謝

第三个问题,比如说有这样两个脚本,怎么把她们合并呢,直接复制粘贴的话,suspend 会越“脚”操作的

代码: (全选)
;脚本 一

RWin up::
Suspend permit
    Suspend
    return

o::
    MouseClick, left,1500,600
    Suspend
    return
代码: (全选)
;脚本 二
LWin up::
Suspend permit
    Suspend
    return

i::
    MouseClick, left,1500,600
    Suspend
    return
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 22 : 43
 
引用:先回第一個問題:
有 SendLevel, Level 可設定優先級(預設是 0 值在1~100之間 值愈大愈優先)

第二個問題:
改用sendinput來發送
SetMouseDelay可修改延時

第三個問題我沒看懂,可以貼出腳本說明一下嗎?
jony.tw 发表于 2012-12-1 22:10 [Image: back.gif]

第一个问题,sendlevel 具体怎么用呢,比如这脚本,要使她里面的键映射都高于默认的话,应该怎么修改
代码: (全选)
e & j::
    MouseGetPos,x,y
    MouseMove,x,882
    return
e & k::
    MouseGetPos,x,y
    MouseMove,x,13
    return


第二个问题,其实是这样的,我有一个脚本,用键盘来移动鼠标
代码: (全选)
h::
    MouseMove,  -5, 0,, R
    return
l::
    MouseMove,  5, 0,, R
    return
j::
    MouseMove,  0, 5,, R
    return
k::
    MouseMove,  0, -5,, R
    return

按住 h 不放,鼠标会重复地向左移动 5 像素,但是这个重复的速度太慢了,怎么使她加快呢,谢谢
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 22 : 55
 
[i=s] 本帖最后由 tyrant 于 2012-12-1 22:57 编辑 [/i]

哈~ 我打個字打太久了~@_@

1.
你說的兩個腳本假設一個腳本是A腳本,另一個腳本是B腳本
你指的優先執行是A腳本執行完再執行B腳本呢?
還是A, B兩腳本的A腳本執行,B腳本的不執行?

2.
代码: (全选)
h::
settimer,MM,20
return

MM:
MouseMove,  -5, 0,, R
return
或更改登錄檔(regedit)中的KeyboardSpeed

3.
Suspend是用於整個腳本的
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 23 : 05
 
引用:哈~ 我打個字打太久了~@_@

1.
你說的兩個腳本假設一個腳本是A腳本,另一個腳本是B腳本
你指的優先執行是A腳本執行完再執行B腳本呢?
還是A, B兩腳本的A腳本執行,B腳本的不執行?

2.
h::
settimer,MM,20
r ...
tyrant 发表于 2012-12-1 22:55 [Image: back.gif]

第一个是只执行 A,不管 B
(不过可能的话,把两个都执行的情况也可以说一下,呵呵,学习学习)


第三个问题的话,没有办法了么

第二个问题,我马上试一下,谢谢
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-01, 23 : 59
 
第一個問題:
真不好意思....
實際上去測過發現sendlevel或inputLevel並不是用來解決上述問題的
後執行腳本的快鍵會取代原執行腳本的重覆定義快鍵....(後令壓前令)
但對另一個快鍵啟用前面已定義過的_熱字串_重映射_及熱字串定義則有意義
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 00 : 02
 
1.
引用:第一个是只执行 A,不管 B
這關係到hook是哪種種類來決定

2.
這你還得決定要中斷或是停止的觸發點

3.
我不太懂你的說明^^"
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 00 : 14
 
7# jony.tw

谢谢

引用:1.

這關係到hook是哪種種類來決定

2.
這你還得決定要中斷或是停止的觸發點

3.
我不太懂你的說明^^"
tyrant 发表于 2012-12-2 00:02 [Image: back.gif]

第三个问题,其实就是想把几个脚本的代码,写在一个文件里面,并且互不影响
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 00 : 41
 
[i=s] 本帖最后由 tyrant 于 2012-12-2 01:23 编辑 [/i]

3.
來個簡單的方法不用suspend
代码: (全选)
LWin up::
chki:=1
    return

RWin up::
chko:=1
    return

o::
if (chko=1)
    MouseClick, left,1500,600
chko:=0
    return

i::
if (chki=1)
    MouseClick, left,1500,600
chki:=0
    return
上面腳本已修正

最後一行的chko:=0寫錯
應改為chki:=0
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 06
 
Tyrant這招...沒停下來:L...發現限制速度的是系統內的按鍵重覆率
否則數值加大就會移得快了
代码: (全选)
SetMouseDelay -1
t1 :=20
h::
   loop % t1 {
    sendinput {Click Rel -5, 0, 0}
    }
    return
l::
   loop % t1 {
    sendinput {Click Rel 5, 0, 0}
    }
    return
j::
   loop % t1 {
    sendinput {Click  0, Rel 5, 0}
    }
    return
k::
   loop % t1 {
    sendinput {Click Rel 0, -5, 0}
    }
    return
t1的增減影響移動速度

但大半情況可以用tab去移焦點到想按下的地方...不用玩貪食蛇
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 13
 
引用:3.
來個簡單的方法不用suspendLWin up::
chki:=1
return

RWin up::
chko:=1
return

o::
if (chko=1)
MouseClick, left,1500,600
chko:=0
return

i::
if (chki=1)
MouseClic ...
tyrant 发表于 2012-12-2 00:41 [Image: back.gif]

谢谢耐心的回复
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 15
 
引用:Tyrant這招...沒停下來:L...發現限制速度的是系統內的按鍵重覆率
否則數值加大就會移得快了SetMouseDelay -1
t1 :=20
h::
loop % t1 {
sendinput {Click Rel -5, 0, 0}
}
return
l::
loo ...
jony.tw 发表于 2012-12-2 01:06 [Image: back.gif]

谢谢,继续学习中~~
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 20
 
jony點出了關鍵
代码: (全选)
SetMouseDelay -1
:)
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 24
 
十樓的代碼
最後一行的chko:=0寫錯
應改為chki:=0
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-12-02, 01 : 31
 
引用:十樓的代碼
最後一行的chko:=0寫錯
應改為chki:=0
tyrant 发表于 2012-12-2 01:24

嗯,谢谢
设置一下 SetMouseDelay -1 速度立刻就上去了,立杆见影,药到病除
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合