【发布时间】:2019-07-29 00:18:55
【问题描述】:
我正在尝试为一个简单的数学问题构建一个自动答案,其中问题中的总变量数取决于问号的位置,这里有几个例子:
What is 56 x 3 ?
What is 7 x 3 ?
What is 232 x 634 ?
我已经创建了一个代码,但我不能让它工作,这是我的代码
#include <AutoItConstants.au3>
HotKeySet("{F4}", "ExitProg")
Func ExitProg()
Exit 0
EndFunc
MouseClick($MOUSE_CLICK_LEFT, 417, 659, 2, 1)
Send("^c")
Func valData()
$Chek = "What "
If ClipGet() == $Chek Then
Check()
Else
Do
MouseClick($MOUSE_CLICK_LEFT, 417, 659, 2, 3)
Send("^c")
Sleep(500)
Until ClipGet() == $Chek
EndIf
EndFunc
Func Check()
$Chek2 = "?"
Select
Case c1() == $Chek2
;two
cc1()
Case c2() == $Chek2
;three
cc2()
Case c3() == $Chek2
;four
cc3()
Case c4() == $Chek2
;five
cc4()
Case c5() == $Chek2
;six
cc5()
Case c6() == $Chek2
;seven
cc6()
Case c7() == $Chek2
;eight
cc7()
Case Else
Exit
EndSelect
EndFunc
Func c1()
MouseClick($MOUSE_CLICK_LEFT, 485, 643, 2, 1)
Send("^c")
EndFunc
Func c2()
MouseClick($MOUSE_CLICK_LEFT, 493, 644, 2, 1)
Send("^c")
EndFunc
Func c3()
MouseClick($MOUSE_CLICK_LEFT, 498, 645, 2, 1)
Send("^c")
EndFunc
Func c4()
MouseClick($MOUSE_CLICK_LEFT, 508, 647, 2, 1)
Send("^c")
EndFunc
Func c5()
MouseClick($MOUSE_CLICK_LEFT, 514, 645, 2, 1)
Send("^c")
EndFunc
Func c6()
MouseClick($MOUSE_CLICK_LEFT, 523, 645, 2, 1)
Send("^c")
EndFunc
Func c7()
MouseClick($MOUSE_CLICK_LEFT, 530, 645, 2, 1)
Send("^c")
EndFunc
Func cc1()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 474, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc2()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
SLeep(500)
MouseClick($MOUSE_CLICK_LEFT, 482, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc3()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 487, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc4()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 495, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc5()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 495, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc6()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 509, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
Func cc7()
MouseClick($MOUSE_CLICK_LEFT, 453, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("^v")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 509, 645, 2, 1)
Send("^c")
Sleep(500)
MouseClick($MOUSE_CLICK_LEFT, 1347, 197, 1, 1)
Send("*")
Send("^v")
Send("{NUMPADENTER}")
EndFunc
valData()
MouseClick($MOUSE_CLICK_LEFT, 1349, 196, 1, 1) ;clicking the answer in calc
Send("^c")
Send("{DEL}")
MouseClick($MOUSE_CLICK_LEFT, 499, 706, 1, 1)
Send("^v")
Exit
请帮帮我!这个的输出只是搜索问号,之后什么都不做。
【问题讨论】:
-
您需要使用计算器吗? Autoit 也可以做数学......问题从何而来?您似乎从 GUI 复制单个单词。您不能复制整个问题并在 AutoIt 内部进行处理吗?这样会更快、更安全。
-
如果 autoit 可以像我上面的例子那样识别措辞问题,那就太好了。我试图通过知道问号的位置来计算运算符(x)之间有多少个数字,所以当我的程序识别它时,它会双击因子来复制它并在计算器中进行计算