帮我把这个按键精灵的脚本改成autoit的脚本。
i=48Delay 300
KeyDown 18,1
Delay 300
KeyPress 68,1
Delay 300
KeyUp 18,1
Delay 300
SayString "http://www.xxx.com/xxx/xxx.php"
Delay 300
KeyPress 13,1
Delay 3000
While i<=90
MoveTo 185,487
IfColor 185,487,ccffff,0
Delay 1000
LeftClick 1
Else
Delay 15000
IfColor 185,487,ccffff,0
LeftClick 1
Else
VBSCall RunApp("C:\WINDOWS\Media\ringin.wav")
MessageBox i
KeyPress 123,1
EndIf
EndIf
KeyPress i 1
Delay 1000
KeyPress 13,1
Delay 5000
MoveTo 569,473
Delay 1000
IfColor 569,473,e3e3e5,0
LeftClick 1
Delay 5000
Else
Delay 15000
IfColor 569,473,e3e3e5,0
LeftClick 1
Delay 5000
Else
VBSCall RunApp("C:\WINDOWS\Media\ringin.wav")
MessageBox i
KeyPress 123,1
EndIf
EndIf
i=i+1
While i>=58 and i<=64
i=65
EndWhile
EndWhile
VBSCall RunApp("C:\WINDOWS\Media\ringin.wav")
MessageBox over 楼主这语气似乎不大好吧,凭什么呀 那我自已改一改试试吧,有什么不行的地方再上来问。
第一个问题就是
msg()怎么把ascii的数字改成对应的字母或数字呢?
比如ascii值为58
则msg() 弹出来对话框如何把相应字母显示对来呢? While i>=58 and i<=64
这个在autoit怎么写呢? 基本上是改完了,就差这个$i了,定义的是ASCII值,可是send的时候出错了,应该是位数是三位,前面应该有个0,而我的是二位的,我又不会改。郁闷了。 $i = 48
$searchx = 185
$searchprex = 21
$searchy = 487
$confirmx = 569
$confirmy = 473
Sleep(5000)
Send("!d")
Sleep(10)
Send("http://www.xxx.com/xxx/xxx.php")
Sleep(10)
Send("{ENTER}")
Sleep(3000)
While $i < 91
MouseMove($searchx, $searchy)
If PixelGetColor($searchx, $searchy) = '0xFFFFCC' Then
Sleep(1000)
MouseClick("left")
Else
Sleep(15000)
If PixelGetColor($searchx, $searchy) = '0xFFFFCC' Then
Sleep(15000)
MouseClick("left")
Else
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox($i)
;KeyPress 123,1
EndIf
EndIf
Send("{ASC $i}")
Sleep(1000)
Send("{ENTER}")
Sleep(5000)
MouseMove($confirmx, $confirmy)
Sleep(1000)
If PixelGetColor($confirmx, $confirmy) = '0xE5E3E3' Then
MouseClick("left")
Sleep(5000)
Else
Sleep(15000)
If PixelGetColor($confirmx, $confirmy) = '0xE5E3E3' Then
MouseClick("left")
Sleep(5000)
Else
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox($i)
;KeyPress 123,1
EndIf
EndIf
$i += 1
While $i>=58 and $i<=64
$i = 65
WEnd
WEnd
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox("OVER")
MsgBox($i) 不是这么用的
msgbox(0,"标题","内容","超时时间")
msgbox(0,$i,$i,10) MsgBox($i) 不是这么用的
msgbox(0,"标题","内容","超时时间")
msgbox(0,$i,$i,10)
骗子 发表于 2012-2-15 10:43 http://www.autoitx.com/images/common/back.gif
我刚测试没通过,这个地方改完了,就差那个ASCII 就是最开始定义的$i位数问题了。 msgbox(0,"标题","内容","超时时间")
但是这个只能msgbox出来ASCII的数值,而对应的字母是什么还没搞定。 在line1 和 line30有点问题。郁闷,实在不会改了。 回复 7# sex123
不懂,为什么要发送ASCII码
直接发送按键不就得了
Send("{S 30}") ;发送30个字符"S" 回复sex123
不懂,为什么要发送ASCII码
直接发送按键不就得了
Send("{S 30}") ;发送30个字符"S"
骗子 发表于 2012-2-15 10:52 http://www.autoitx.com/images/common/back.gif
你仔细看代码就明白了,我穷举法,第一次send a
第二次 send b
第三次 send c
直至 send z
所以用到ASCII一个数值一个数值地$i += 1 我改成数组,还是不对,我郁闷了。 Local $a=,$b
$i = 48
$b=StringFormat('%03d\n',$a&$a&$a+$i)
$i = 48
$searchx = 185
$searchprex = 21
$searchy = 487
$confirmx = 569
$confirmy = 473
Sleep(5000)
Send("!d")
Sleep(10)
Send("http://www.xxx.net/bbs/search.php")
Sleep(10)
Send("{ENTER}")
Sleep(3000)
While $i < 91
MouseMove($searchx, $searchy)
If PixelGetColor($searchx, $searchy) = '0xFFFFCC' Then
Sleep(1000)
MouseClick("left")
Else
Sleep(15000)
If PixelGetColor($searchx, $searchy) = '0xFFFFCC' Then
Sleep(15000)
MouseClick("left")
Else
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox(0,0,$i)
ExitLoop
EndIf
EndIf
$b=StringFormat('%03d\n',$a&$a&$a+$i)
Send("{ASC $b}")
Sleep(1000)
Send("{ENTER}")
Sleep(5000)
MouseMove($confirmx, $confirmy)
Sleep(1000)
If PixelGetColor($confirmx, $confirmy) = '0xE5E3E3' Then
MouseClick("left")
Sleep(5000)
Else
Sleep(15000)
If PixelGetColor($confirmx, $confirmy) = '0xE5E3E3' Then
MouseClick("left")
Sleep(5000)
Else
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox(0,"",$i)
ExitLoop
EndIf
EndIf
$i += 1
While $i>=58 and $i<=64
$i = 65
WEnd
WEnd
If $i = 65 Then
SoundPlay("C:\WINDOWS\Media\ringin.wav")
MsgBox(0,"","OVER")
EndIf
Send("#r")
WinWaitActive("运行")
Send("notepad.exe{Enter}")
WinWaitActive("")
For $i = 65 To 90
$text = Chr($i)
Send ($text)
Send (@CR) ;换行
Next
$text = Chr($i)
Send ($text)
原来这样子的呀,我回去试试。 谢谢,问题解决了。
页:
[1]
2