Что нового

[Элементы GUI] отказывается работать ControlGetText

Sergy

Новичок
Сообщения
25
Репутация
1
утилька, которая вчера работала, сегодня отказалась начисто, байкотирует похоже.
Упростил до нельзя - тот же эффект.

Идея проста - ждём появления окна добавления торрента в BitTorrent или uTorrent (title и нужные controlID у них одинаковые), и читаем оттуда два поля: путь и имя.

Код:
WinWaitActive("[CLASS:#32770]")	; ждём окна добавления торрента
$Torrent_Path = ControlGetText ("[CLASS:#32770]", "", "ComboBox1")	; путь
$Torrent_Name = ControlGetText ("[CLASS:#32770]", "", "Edit2")			; имя
MsgBox(0,"Good, Окно найдено", "Путь: " & $Torrent_Path & @CRLF & "Имя торрента: " & $Torrent_Name)


Вроде проще некуда. При переключении на окно скрипт срабатывает, но путь и имя оказываются пустыми. Вчера работало, сегодня нет :stars:
Я туплю?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
А зачем эти костыли? На буржуйском форуме есть udf для uTorrent. Может лучше её использовать?
 
Автор
S

Sergy

Новичок
Сообщения
25
Репутация
1
да в плане общения с торрентом утильке кроме пары использований ControlGetText и ControlSetText, больше ничего не надо. Тут скорей задействование UDF будет костылями.

сейчас по тимвиверу на работе с uTorrent проверил - работает, дома с BitTorrent косячит, хотя дома вчера и делал. :scratch:
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Ты зря используешь [CLASS:#32770] - это очень распространенный класс окон. Попоробуй title или REGEXPTITLE.
 
Автор
S

Sergy

Новичок
Сообщения
25
Репутация
1
ну это не проблема, можно будет и поменять, сейчас факт в том, что скрипт срабатывает на нужное окно, но контролы не зачитывает.
сейчас пробовал поствить с нуля и uTorrent и BitTorrent - ничего не поменялось.
Win7 x64 максимальная, на работе проф.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
У меня ваш скрипт сработал даже когда utorrent не был запущен.
Может действительно, как писал sngr [?]
[CLASS:#32770] - это очень распространенный класс окон.
Добавьте какую нибудь дополнительную проверку, например, по тексту:
Код:
WinWaitActive("[CLASS:#32770]",'Сохранить как')
$Torrent_Path = ControlGetText ("[CLASS:#32770]", "Сохранить как", "[CLASS:ComboBox; INSTANCE:1]")  ; путь
$Torrent_Name = ControlGetText ("[CLASS:#32770]", "Сохранить как", "[CLASS:Static; INSTANCE:3]")          ; имя
MsgBox(0,"Good, Окно найдено", "Путь: " & $Torrent_Path & @CRLF & "Имя торрента: " & $Torrent_Name)
 
Автор
S

Sergy

Новичок
Сообщения
25
Репутация
1
Большое спасибо, действительно все проблемы были из-за класса. Переделал
Код:
Opt("WinTitleMatchMode", 2)
Local $handle = WinWait("Добавить новый торрент")
$Torrent_Path = ControlGetText ($handle, "", "ComboBox1")	; путь
$Torrent_Name = ControlGetText ($handle, "", "Edit2")			; имя
MsgBox(0,"Good, Окно найдено", "Путь: " & $Torrent_Path & @CRLF & "Имя торрента: " & $Torrent_Name)


так стабильно работает. А можно вариант с REGEXPTITLE? а то я пока с регэкспами ещё недоразобрался :-[


Добавлено:
Сообщение автоматически объединено:

пример окна:
cc85150a4560.jpg
 
Верх