• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.1
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.5
软件大小:29.2M
更新时间:06-14

最新企业版UiBot
立即下载

软件版本:1.2
软件大小:208M
更新时间:01-16

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

手動按鍵 控制 調整問題 [复制链接]

1#
大家好
我想請教一個問題
請大家幫幫忙

是有關於熱鍵 調整變數的問題

比如說
我腳本內有一個參數P

我要如何使用參數
控制 PX變數的 增減
按1鍵 1次 PX值 -1 按2次P-2 ......以此類推
按2鍵 1次 PX值不變 使用腳本內設定
按3鍵 1次 PX值+1 按2次P-2......以此類推

我在腳本之前 寫一個副程式
用 GetLastKey 的方式

這是副程式內容
Sub hotkey
GetLastKey a
If a=49
Beep
px=px+1
Delay 10
EndIf
If a=50
Beep
px=480
Delay 10
EndIf
If a=51
Beep
px=px-1
Delay 10
EndIf
Return

但是過好幾次都沒作用 Px 都沒變
這樣寫 哪邊有問題阿?

[ 本帖最后由 lxon 于 2007-4-24 04:52 PM 编辑 ]

2#

Return hotkey 最好寫完整 不過這並不是關鍵

我想可能是在此之前沒有先給變量P賦值的原因

3#

感謝大大 第一時間 回覆
我忘了把腳本PO上 抱歉
//坐標變量:
VBS dim x,x1,x2,xx,px
//時間變量:
VBS dim t,t1,t2,tt,dt,kt
//初始化變量:
VBS i=1:tt=0:xx=0
//循環及按鍵的延時設置,請根據電腦及網絡情況自行調整:
VBS dt=1.5:kt=1
//響一下,提示腳本開始運行:
Beep
Rem 測節拍速度
//循環防卡延時:
Delay 10*dt
//第一次測小圓珠的位置:
VBSCall Call FindColor(300,361,520,375,"5fc1ff",x1,y1)
If x1>0
//記錄從系統啟動到現在的毫秒數:
Plugin t1=GetSysInfo.GetTime()
Delay 512
//第二次測小圓珠的位置:
VBSCall Call FindColor(300,361,520,375,"5fc1ff",x2,y2)
If x2>x1
//再次記錄從系統啟動到現在的毫秒數:
Plugin t2=GetSysInfo.GetTime()
//計算兩次測量的時間差,並累加:
VBS tt=tt+t2-t1
//計算兩次測量的坐標差差,並累加:
VBS xx=xx+x2-x1
VBS i=i+1
//循環測5次以減小誤差:
If i=5
//算出不同節拍下小球的移動速度(毫秒/單位坐標)
VBS t=tt/xx
//根據歌曲速度調整P點位置:
If t>20
//在70-90
px=476.1
ElseIf t>19 and t<=20
//尚未測試
px=476.4
ElseIf t>18 and t<=19
//***********60 bpm
px=477.5
ElseIf t>16 and t<=18
//在60-110
px=476.55
ElseIf t>14 and t<=16
//在110-130
px=476.45
ElseIf t>12 and t<=14
//在90
px=476.2
ElseIf t>11 and t<=12
//***********90 bpm
px=475.2
ElseIf t>10 and t<=11
//***********100 bpm
px=475.1
ElseIf t>9.5 and t<=10
//在170-180
px=475
Else
//在180-190
px=471.9
EndIf
Goto 開始
EndIf
Goto 測節拍速度
EndIf
EndIf
Goto 測節拍速度
Rem 按空格
//循環防卡延時:循環及按鍵的延時設置
Delay 8*dt
//檢測小球位置:
VBSCall Call FindColor(310,360,475,375,"5fc1ff",x,y)
If x>0 and x //沒到P點,延時等待小球到達設定的P點處
Delay (px-x)*t
KeyPress 17 1
//延時等待小球滾完剩餘路程:
Delay 15*t
Goto 開始
ElseIf x>=px
//已到或超過設定的P點,直接按空格:
KeyPress 17 1
Delay 15*t
Goto 開始
Else
Goto 按空格
EndIf
Rem 開始
//循環防卡延時:
Delay 8*dt
//單數箭頭
IfColor 391 391 000000 2
IfColor 401 408 ffffff 2
IfColor 233 408 ffffff 2
VBS s=9:k=0
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 275 408 ffffff 2
VBS s=7:k=42
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 317 408 ffffff 2
VBS s=5:k=84
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 359 408 ffffff 2
VBS s=3:k=126
Goto 按箭頭
EndIf
VBS s=1:k=168
Goto 按箭頭
EndIf
Delay 5*kt
EndIf
//雙數箭頭
IfColor 370 391 000000 2
IfColor 380 408 ffffff 2
IfColor 254 408 ffffff 2
VBS s=8:k=21
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 296 408 ffffff 2
VBS s=6:k=63
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 338 408 ffffff 2
VBS s=4:k=105
Goto 按箭頭
EndIf
Delay 5*kt
VBS s=2:k=147
Goto 按箭頭
EndIf
EndIf
//單數反箭頭
IfColor 401 393 "000094" 2
IfColor 401 408 ffffff 2
IfColor 233 408 ffffff 2
VBS s=9:k=0
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 275 408 ffffff 2
VBS s=7:k=42
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 317 408 ffffff 2
VBS s=5:k=84
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 359 408 ffffff 2
VBS s=3:k=126
Goto 按箭頭
EndIf
Delay 5*kt
VBS s=1:k=168
Goto 按箭頭
EndIf
EndIf
//雙數反箭頭
IfColor 380 393 "000094" 2
IfColor 380 408 ffffff 2
IfColor 254 408 ffffff 2
VBS s=8:k=21
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 296 408 ffffff 2
VBS s=6:k=63
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 338 408 ffffff 2
VBS s=4:k=105
Goto 按箭頭
EndIf
Delay 5*kt
VBS s=2:k=147
Goto 按箭頭
EndIf
EndIf
Goto 開始
Rem 按箭頭
VBS x=0
IfColor 234+k 393 3E913C 2
VBS x=x+1
EndIf
While x //循環防卡延時:
Delay 8*kt
//循環檢測為哪個方向鍵(已包括反鍵)並按相應方向鍵:
IfColor 234+k+x*42 393 003700 2
IfColor 231+k+x*42 410 ffffff 2
IfColor 228+k+x*42 400 ffffff 2
KeyDown 38,1
Delay 5*kt
KeyUp 38,1
Goto 下一個
EndIf
KeyDown 40,1
Delay 5*kt
KeyUp 40,1
Goto 下一個
EndIf
IfColor 226+k+x*42 408 ffffff 0
IfColor 238+k+x*42 413 ffffff 0
KeyDown 39,1
Delay 5*kt
KeyUp 39,1
Goto 下一個
EndIf
KeyDown 37,1
Delay 5*kt
KeyUp 37,1
Goto 下一個
EndIf
EndIf
IfColor 234+k+x*42 393 "000094" 2
IfColor 231+k+x*42 410 ffffff 2
IfColor 228+k+x*42 400 ffffff 2
KeyDown 40,1
Delay 5*kt
KeyUp 40,1
Goto 下一個
EndIf
KeyDown 38,1
Delay 5*kt
KeyUp 38,1
Goto 下一個
EndIf
IfColor 226+k+x*42 408 ffffff 2
IfColor 238+k+x*42 413 ffffff 2
KeyDown 37,1
Delay 5*kt
KeyUp 37,1
EndIf
Goto 下一個
EndIf
KeyDown 39,1
Delay 5*kt
KeyUp 39,1
Goto 下一個
EndIf
EndIf
Rem 下一個
x=x+1
EndWhile
Goto 按空格
EndScript

紅色的字是我 賦予的PX值
我該如何寫才可以呢?

因為太長了 所以 把它截斷
現在全貼上去 抱歉

[ 本帖最后由 lxon 于 2007-4-24 04:51 PM 编辑 ]

4#

3樓這段裡的變量px與1樓的變量p是有關聯的嗎?
這段腳本裡好像沒有跳轉到"rem 按空格" 並且也沒有"rem 開始"這個標記

5#

錯誤的資料補齊了
非常抱歉

大大幫幫我看一下
謝謝

再來還有另一個有關於 小精靈的疑問??
在編寫腳本的時候
我的座標值 顏色值 使用 按鍵精靈 執行
都可以正確執行
但是 只要 一轉換成 小精靈的EXE檔
卻都跑不動了 ?

6#

//單數反箭頭
IfColor 401 393 "000094" 2
//顏色寫錯了
IfColor 401 408 ffffff 2
IfColor 233 408 ffffff 2
VBS s=9:k=0
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 275 408 ffffff 2
VBS s=7:k=42
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 317 408 ffffff 2
VBS s=5:k=84
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 359 408 ffffff 2
VBS s=3:k=126
Goto 按箭頭
EndIf
Delay 5*kt
VBS s=1:k=168
Goto 按箭頭
EndIf
EndIf
//雙數反箭頭
IfColor 380 393 "000094" 2
IfColor 380 408 ffffff 2
IfColor 254 408 ffffff 2
VBS s=8:k=21
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 296 408 ffffff 2
VBS s=6:k=63
Goto 按箭頭
EndIf
Delay 5*kt
IfColor 338 408 ffffff 2
VBS s=4:k=105
Goto 按箭頭
EndIf
Delay 5*kt
VBS s=2:k=147
Goto 按箭頭
EndIf
EndIf
Goto 開始
Rem 按箭頭
VBS x=0
IfColor 234+k 393 3E913C 2
VBS x=x+1
EndIf
While x //循環防卡延時:
Delay 8*kt
//循環檢測為哪個方向鍵(已包括反鍵)並按相應方向鍵:
IfColor 234+k+x*42 393 003700 2
IfColor 231+k+x*42 410 ffffff 2
IfColor 228+k+x*42 400 ffffff 2
KeyDown 38,1
Delay 5*kt
KeyUp 38,1
Goto 下一個
EndIf
KeyDown 40,1
Delay 5*kt
KeyUp 40,1
Goto 下一個
EndIf
IfColor 226+k+x*42 408 ffffff 0
IfColor 238+k+x*42 413 ffffff 0
KeyDown 39,1
Delay 5*kt
KeyUp 39,1
Goto 下一個
EndIf
KeyDown 37,1
Delay 5*kt
KeyUp 37,1
Goto 下一個
EndIf
EndIf
IfColor 234+k+x*42 393 "000094" 2
IfColor 231+k+x*42 410 ffffff 2
IfColor 228+k+x*42 400 ffffff 2
KeyDown 40,1
Delay 5*kt
KeyUp 40,1
Goto 下一個
EndIf
KeyDown 38,1
Delay 5*kt
KeyUp 38,1
Goto 下一個
EndIf
IfColor 226+k+x*42 408 ffffff 2
IfColor 238+k+x*42 413 ffffff 2
KeyDown 37,1
Delay 5*kt
KeyUp 37,1
EndIf
Goto 下一個
EndIf
KeyDown 39,1
Delay 5*kt
KeyUp 39,1
Goto 下一個
EndIf
EndIf
//錯了 多了個endif
Rem 下一個
x=x+1
EndWhile
Goto 按空格
EndScript

7#

謝謝 塵風大大的更正

但是 請問您 我要如何調整才能
讓PX值是熱鍵調整呢?

翻了好多大大的精采文章
都一直 試不出來!!

8#

調用子程序也是可以 但是在運行過程中可能你按了鍵之後卻被腳本中的鍵盤命令干擾 使腳本有時無法正確判斷

建議把判斷按鍵做成另一個腳本 用waitkey命令檢測 把檢測後定義的數值複製進剪貼板 再另一個腳本讀取剪貼板數據來達到修改的目的

讀寫剪貼板的方法參考這裡: http://bbs.vrbrothers.com/viewthread.php?tid=13137

9#

謝謝 !!

剛剛去看過 這篇文章
真的很佩服大大們高深的功力
對我來說
寫一個腳本就好頭大了
兩個腳本 ˊˋ
又要互相傳遞 變數

我想PX值部份
我再翻翻文章 看有沒有
適合的參數 可以使用
然後 再從寫 ˊˋ

10#


这个我喜欢

11#


很厉害佩服

12#


大佬的见解就是独特!

13#


期待越来越好

定制脚本,请带上价格和要求私QQ229061194
14#


按键精灵是一款模拟鼠标键盘动作的软件。通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。
按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本。只要在电脑前用双手可以完成的动作,按键精灵都可以替代完成。

发新话题 回复该主题