Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: dramster on January 10, 2015, 04:14:43 PM
-
день добрый!
задача такова, я пишу в консоль команду, после чего даблкликам и контрал ц капирую нужный мне ответ (число) в буфер. но, иногда в эти 50мс между вводам команды и даблкликам в консоли вылазит сообшение, например чата, и копируется уже не число, а текст. вобщем мне надо распознать, текст это или число, повторять ввод команды или продолжать дальше.
KEYPRESS(#F12) //вызов консоли
wait(2)
DBLCLICK(623,832)//даблклик в месте ввода
waitms(50)
TOCLIP ("command") //суну команду через буфер
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
waitms(100)
KEYPRESS(#enter) //ентер
waitms(50)//и маленькая задержка чтоб ответ вылез,вот тут какраз в этот момент может вылезти текст
DBLCLICK(1284,800)//даблклик по ответу
waitms(50)
KEYDOWN (#CTRL)//ну а дальше неважно
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS (50)
KEYPRESS(#F8)
подскажите если есть какие идеи.
-
пол дня ламал голову, а когда обратился к вам, сам решил проблему :-\
$text="g"
$num=2
$text=$text-$text
$num= $num-$num
IF($text= 0)
print( "переменная text это число")
else
print( "переменная text это текст")
END_IF
IF($num = 0)
print( "переменная num это число")
else
print( "переменная num это текст")
END_IF
halt
но всеже этот способ не идеален. при проверке выяснилось, что если текст содержит ")" то "ошибка интерпритации" . скорее всего не только скобка будет давать такой результат :( . но уже чтото.
возможно у когото еще есть идеи?
-
так как никто ничего путного не предложил, я остановился на своем варианте ($num-$num=0, если $num это число). но, как я уже сказал выше, если в функции сравнивать строковую переменную в которой есть символ"(", то ошибка. я перебрал все знаки и символы которые нашел у себя на клаве и понял, что ошибку выдают толька 2 символа " ) ( ", скобки. и причем знак "=" почемуто равен 0, тоесть текст в котором есть знак "=".
$t="g=text"
IF($t = 0)
print($t," = 0") //выдает "g=text = 0"
END_IF
print($t)
halt
в остальных случаях все работает отлично.
в этоге мне всегото нужно отфильтравать 3 символа ")(="
$t="g=text"
$t=strfilter($t, "()=", 0)
$t=$t-$t
IF($t= 0)
print( "переменная t это число")
else
print( "переменная t это текст")
END_IF
halt