Показать полную графическую версию : [решено] Отловить visible text
Frost_Imp
24-09-2009, 17:23
Всем доброго времени суток!
Прошу помощи в указании направления =)
Есть окно, AutoIT Info определяет в нем visible text. Не могу найти в справке, как с этим visible text работать.
Логику хочу сделать следующую:
Если visible text = "Найденные записи 1/1" то
___1 функция
___в противном случае
___2 функция
конец
А также как будет выглядеть синтаксис, чтобы определить, цифры после текста "Найденные записи" (этим будет заниматься 2 функция). То есть в зависимости от количества записей и номера текущей записи будут выполняться определенные циклы.
Заранее благодарен за ответ!
FlatX007
24-09-2009, 18:19
Нащёт visible text ничё непонял ...
а это - А также как будет выглядеть синтаксис, чтобы определить, цифры после текста "Найденные записи" (этим будет заниматься 2 функция). То есть в зависимости от количества записей и номера текущей записи будут выполняться определенные циклы. »
$sString = "Найденные записи 1/3"
$aArray = StringRegExp($sString, "(\d)", 3)
If Not (@error) Then
Switch $aArray[0]
Case 0
MsgBox(64, "", "0/*")
Case 1
MsgBox(64, "", "1/*")
EndSwitch
Switch $aArray[1]
Case 2
MsgBox(64, "", "*/2")
Case 3
MsgBox(64, "", "*/3")
EndSwitch
EndIf
Frost_Imp
24-09-2009, 18:49
Достаточно приблизительно понял суть (но понял, что не может не радовать)... Что хочу сказать...
По сабжу - понял, что visible text можно увидеть
WinGetText("title", "")
Но встала другая проблема. Нужно отловить цифры до знака "/" (без кавычек) и после него, то есть
Найденные записи 1/3
записать в переменные 1 и 3
Найденные записи 10/30
записать в переменные 10 и 30
StringMid не прокатывает
FlatX007
24-09-2009, 19:25
Но встала другая проблема. Нужно отловить цифры до знака "/" (без кавычек) и после него, то есть
Найденные записи 1/3
записать в переменные 1 и 3
Найденные записи 10/30
записать в переменные 10 и 30
StringMid не прокатывает »
Я же тебе написал как это сделать ...!
Frost_Imp
24-09-2009, 19:31
Я же тебе написал как это сделать ...! »
Не =) Подставь вместо 1/3 - 10/30 и поймешь, что не работает. Не писать же в коде все возможные комбинации на совпадение...
FlatX007
24-09-2009, 19:48
В шапке темы ничего не написано что может быть 30 или 130 :tomato2:
Switch $aArray[0]
Case 0
MsgBox(64, "", "0/*")
Case 1 to 100
MsgBox(64, "", "от 1 до 100/*")
EndSwitch
Frost_Imp
25-09-2009, 09:50
FlatX007, не, не то. Смотрите, объясню подробнее. Предположим, есть строка:
Найденные записи 1/3
Есть две переменные, которым присваиваются значения
SCurrent = 1
SCount = 3
В другой строке
Найденные записи 5/136
у нас будет
SCurrent = 5
SCount = 136
Вот что нужно то в итоге... :-(
Frost_Imp
25-09-2009, 12:55
Работает вот что, найдите 5 отличий =)
Result_analyse()
func Result_analyse()
$GetText = WinGetText($title_SGTS, "")
$n1=StringInStr($GetText,"(")
$n2=StringInStr($GetText,"/")
$Current=StringMid($GetText,$n1+1,$n2-$n1-1)
$n1=StringInStr($GetText,"/")
$n2=StringInStr($GetText,")")
$Count=StringMid($GetText,$n1+1,$n2-$n1-1)
;MsgBox(0,"",$Current)
;MsgBox(0,"",$Count)
EndFunc
$GetText возвращает строку вида "Найденные записи (1/3)"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.