Показать полную графическую версию : [решено] Как получить данные из элемента ThunderRT6TextBox в ini-файл
aktivizion
11-03-2010, 21:43
Вопрос вот вчем:
имееться программа, в ней есть строки с текстом, у каждой строки есть какбы свой id
вот пример:
>>>> Control <<<<
Class: ThunderRT6TextBox
Instance: 2
ClassnameNN: ThunderRT6TextBox2
Name:
Advanced (Class): [CLASS:ThunderRT6TextBox; INSTANCE:2]
ID: 15
Class: ThunderRT6TextBox
Instance: 3
ClassnameNN: ThunderRT6TextBox3
Name:
Advanced (Class): [CLASS:ThunderRT6TextBox; INSTANCE:3]
ID: 16
пример двух строк узнал через autoit windows info,
суть проблемы в том: можно ли както получить содержимое строки допустим в ini файл,
и потом взять значение из ини файла и вставить обратно
там помимо информации о контролах, выше есть информаци об окне. его заголовок. он тебе понадобится.
$a = ControlGetText('Title', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]'); получение значения поля. храниться в переменной $a
ControlSetText('Title', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]', $a); вставка значения переменной $a в поле
Предупреждение за нарушение правил форума, пункт 2.7 (http://forum.oszone.net/rules.html#2.7):
В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема).
Переименуйте пожалуйста тему.
aktivizion
12-03-2010, 14:18
Переименуйте пожалуйста тему. »
я бы с радостью, но не хочу огорчать вас, незнаю как
aktivizion
12-03-2010, 14:57
думал что будет работать, но увы:
при ControlSetText , тоесть отправки значения в окно происходит ошибка, прикреплен скрин ошибки
эта ошибка может быть вызвана тем, что в окнах находиться старый текст? или я пологаю, что
ControlSetText должен просто замещать старый на новый?
aktivizion, а у тебя переменная $a объявлена? и правильное ли название заголовка окна? там какие то знаки вопроса.
и еще, нужно уметь подстраивать код под себя. а не просто копипастить.
aktivizion
12-03-2010, 15:34
kaster,
название заголовка правильная, так и думал что обратите внимание
переменная $a получает значение, это я проверил через MsgBox
но эта же переменная не передаеться в совершенно идентичное окно
и на счет обьявления переменной, тоесть?
aktivizion, предоставь код того, как ты это делаешь
aktivizion
12-03-2010, 16:32
kaster,
вроде немного разобрался, добавил global $a и так далее, вроде начал на половину работать, скрип? ну могу прикрепить,
только разберусь как весь скрип зацепить
aktivizion, ну если у тебя переменные используются в разных пространствах имен, то конечно даже называясь одинаково будут отличаться по значению. к примеру если ты присваиваешь значение переменной в одной функции, а ее значение пытаешься использовать в другой.
ну могу прикрепить »
дело твое. если разобрался и все работает, то мне твой код ни к чему :)
aktivizion
12-03-2010, 16:43
kaster,
да, теперь точно разобрался, спасибо за помощь, напутствие, Благодарю
только не по теме, но всеже, вот чать скрипта:
Func otdat()
WinWait("????? v1.0.0 ???")
Sleep(200)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]', $a)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:5]', $b)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:6]', $c)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:8]', $d)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:9]', $e)
Sleep(300)
когда я запускаю, данные присваиваються в окне рандомно, ну не по очереди как исправить?
просто нужно ещё после каждого присвоения жать дополнительно кнопку
командой ControlClick
странно, я вроде бы писал ещё один пост, браузер видимо играет сомною,
вопрос не по теме, да и тема совсем не такая которую разбирали, но по поводу скрипта:
вот частичка скрипта:
Func otdat()
WinWait("????? v1.0.0 ???")
Sleep(200)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]', $a)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:5]', $b)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:6]', $c)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:8]', $d)
проблема в том что эти даные присваиваютсья в охно хаотично, рандомно, тобиш не поочереди
как сделать строгое выполнение скрипта?
просто после каждого ControlSetText нужно нажимать ещё одну кнопку
командой ControlClick,
как решить это?
незнаю как »
При редактирований темы имеется такая возможность.
вот чать скрипта »
Который нужно как минимум заключать в теги кода.
P.S
Просмотрите справку по форуму (http://forum.oszone.net/faq.php).
aktivizion
12-03-2010, 17:35
Который нужно как минимум заключать в теги кода.
P.S
Просмотрите справку по форуму. »
ну и какой же из представленных кодов использовать?
http://forum.oszone.net/misc.php?do=bbcode
всё разобрался [more]
какой же из представленных кодов использовать? »
[code] (http://forum.oszone.net/misc.php?do=bbcode#code) как ни странно.
aktivizion, а где ты эту функцию используешь? приведи весь код, только заключи их в теги [code]
aktivizion
12-03-2010, 17:57
#include <file.au3>
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
ToolTip("F1-получить значения, F2-отправить значения, 3-запись в ини, F10- выход"& @crlf & "4-применить, 5-сохранить" ,0,0)
$sFilePaht = "D:\79.ini"
_FileCreate($sFilePaht)
Global $a
Global $b
Global $c
Global $d
Global $e
Global $f
Global $g
Global $h
Global $i
Global $k
HotKeySet ("{f1}", "poluchit")
HotKeySet ("{f2}", "otdat")
HotKeySet ("{f3}", "ini")
HotKeySet ("{f4}", "primenit")
HotKeySet ("{f5}", "soxranit")
HotKeySet ("{f10}", "vuhod")
While 1
Sleep(100)
WEnd
Func poluchit()
WinWait("????? v1.0.0 ???")
$a = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]')
Sleep(100)
$b = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:5]')
Sleep(100)
$c = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:6]')
Sleep(100)
$d = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:8]')
Sleep(100)
$e = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:9]')
Sleep(100)
$f = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:10]')
Sleep(100)
$g = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:11]')
Sleep(100)
$h = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:12]')
Sleep(100)
$i = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:15]')
Sleep(100)
$k = ControlGetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:18]')
Sleep(200)
EndFunc
Func ini()
IniWrite ("D:\79.ini", "стиль", "id", $a)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id2", $b)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id3", $c)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id4", $d)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id5", $e)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id6", $f)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id7", $g)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id8", $h)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id9", $i)
Sleep(10)
IniWrite ("D:\79.ini", "стиль", "id10", $k)
Sleep(10)
EndFunc
Sleep(300)
Func otdat()
WinWait("????? v1.0.0 ???")
Sleep(200)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:2]', $a)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:5]', $b)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:6]', $c)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:8]', $d)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:9]', $e)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:10]', $f)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:11]', $g)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:12]', $h)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:15]', $i)
Sleep(300)
ControlSetText('????? v1.0.0 ???', '', '[CLASS:ThunderRT6TextBox; INSTANCE:18]', $k)
Sleep(300)
EndFunc
Func primenit()
ControlClick("????? v1.0.0 ???","??",355)
EndFunc
Func soxranit()
ControlClick("????? v1.0.0 ???","??",356)
EndFunc
Func vuhod()
exit
EndFunc
да уж собственно и нечего вроде и ненадо, можно без строгого отношения использовать скрипт
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.