-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Нужна помощь по ComboBox
Начинаю изучать АвтоИТ. Начал с уроков из хэлпа.
Начал как написано:
Код:
Run ("notepad.exe")
WinWaitActive ("Untitled - Notepad")
Send ("This is some test.")
WinClose ("Untitled - Notepad")
WinWaitActive ("Notepad", "The text in the Untitled file has changed.")
Далее в уроке идет Send ("!n") и урок заканчивается.
Я решил файл сохранить, но запутался в окне сохранения. Прописал:
Код:
Send ("!y")
WinWaitActive ("Save as")
а дальше не знаю как в ComboBox'ы отправить то что мне нужно.
Например я хочу:
Save in - C:\Program Files\AutoIT или просто Desktop.
File name - sacredboy.
Save as type - Text Documents (*.txt).
Encoding - UTF-8.
и в конце все это дело сохранить (Send ("!s"))
Что нужно прописывать и в каком порядке?
|
Правда ни когда этим не занимался ... :)
Код:
Run("notepad.exe")
WinWaitActive ("[CLASS:Notepad]", "")
Send("Hello from Notepad.{ENTER}1 2 3 4 5 6 7 8 9 10{ENTER}")
Send ("^s")
WinWaitActive ("Сохранить как", "")
ControlSend ("Сохранить как", "", "[CLASS:Edit; INSTANCE:1]", "ля ля ля .txt")
Sleep(100)
ControlClick ("Сохранить как", "", "[CLASS:ComboBox; INSTANCE:4]")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{ENTER}")
ControlClick ("Сохранить как", "", "[CLASS:Button; INSTANCE:2]")
WinClose("[CLASS:Notepad]", "")
|
FlatX007, а Вы не подскажете как раскрыть КомбоБокс Save in, что вместо флэшки PQI файл сохранился на Десктоп или диск Д. В вашей версии скрипта этого нет.
|
Грубо говоря - Зачем Вам все это??? ИМХО легче будет
Код:
$hOpen = FileOpen("C:\Program Files\AutoIT\sacredboy.txt",128)
FileWrite($hOpen,"Какой то текст")
FileClose($hOpen )
И ВСЕ!! Зачем делать автомвтизацию блокнота???
P.S. Если непонятно что за цифры 128 - посмотрите в справке
Если вам показалось что я "кричу" - не обращайте внимания, я чутка нервничаю
|
Цитата:
Цитата sacredboy
В вашей версии скрипта этого нет. »
|
Вам бы всё сразу, и готовое... а сделать по образцу ?
Во вторых - кнопка полезное сообщение работает т.к. я всё таки потратил своё личное время на создание ответа на ваш вопрос... если вам не трудно.. (просто отпадает всякое желание отвечать :happy: )
|
FlatX007, такой вопрос: почитал это http://www.oszone.net/3663. Там есть такой пример:
Код:
;выбрать строку Full Install из выпадающего списка ComboBox1 в окне установки FLY 2000 TV, содержащем текст Выберите тип установки
ControlCommand('FLY 2000 TV','Выберите тип установки','ComboBox1','SelectString','Full Install')
Можно ли по этому подобию сделать то что мне нужно?
Начинаю подозревать точнее AutoIT Windows Info показывает что нужная мне строка зовется не ComboBox а ToolbarWindow.
Пробовал так:
Код:
ControlClick ("Сохранить как", "", "ToolbarWindow324", "C:\Users\Alexander\Documents")
не работает.
|
Код:
Run("notepad.exe")
WinWaitActive ("[CLASS:Notepad]", "")
Send("Hello from Notepad.{ENTER}1 2 3 4 5 6 7 8 9 10{ENTER}")
Send ("^s")
WinWaitActive ("Сохранить как", "")
ControlSend ("Сохранить как", "", "[CLASS:Edit; INSTANCE:1]", Round(Random(1000, 1000000)) & ".txt")
Sleep(100)
ControlClick ("Сохранить как", "", "[CLASS:ComboBox; INSTANCE:4]")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{DOWN}")
Send ("{ENTER}")
$hPossave = WinGetPos("Сохранить как")
WinMove("Сохранить как", "", @DesktopWidth / 2 - $hPossave[2] / 2, @DesktopHeight / 2 - $hPossave[3] / 2)
$hPossave = WinGetPos("Сохранить как")
MouseMove($hPossave[0] + 40, $hPossave[1] + 159)
Sleep(100)
MouseDown("left")
Sleep(100)
MouseUp("left")
ControlClick ("Сохранить как", "", "[CLASS:Button; INSTANCE:2]")
WinClose("[CLASS:Notepad]", "")
|
Вот так можно попробывать:
PHP код:
#Include <GuiComboBox.au3>
WinActivate("Сохранить как", "")
ControlSend("Сохранить как", "", "Edit1", @DesktopDir&"\sacredboy")
$hwnd=ControlGetHandle ( "Сохранить как", "", "ComboBox3" )
_GUICtrlComboBox_SelectString($hwnd, "Текстовые документы (*.txt)")
$hwnd=ControlGetHandle ( "Сохранить как", "", "ComboBox4" )
_GUICtrlComboBox_SelectString($hwnd, "UTF-8")
ControlClick( "Сохранить как", "", "Button2" )
|
FlatX007, последняя версия скрипта у Вас сработала? У меня Ваш скрипт все равно останавливается на окне которое показано в первом сообщении.
Alex2103, выдает такую ошибку:
|
sacredboy, а про #Include <GuiComboBox.au3> не забыли?
|
Alex2103, будьте добры, посмотрите на текст скрипта.
Код:
run("notepad.exe") WinWaitActive ("[CLASS:Notepad]", "")
Send("Hello from Notepad.{ENTER}1 2 3 4 5 6 7 8 9 10{ENTER}")
Send ("^s") WinActivate("Save as", "") ControlSend("Save as", "", "Edit1", @DesktopDir&"\sacredboy")
#Include <GuiComboBox.au3>
$hwnd=ControlGetHandle ( "Save as", "", "ComboBox3" )
_GUICtrlComboBox_SelectString ($hwnd, "Text documents (*.txt)")
$hwnd=ControlGetHandle ( "Save as", "", "ComboBox4" )
_GUICtrlComboBox_SelectString ($hwnd, "UTF-8")
ControlClick( "Save as", "", "Button2" )
|
вот в таком виде у меня нормально работает:
Код:
#Include <GuiComboBox.au3>
run("notepad.exe")
WinWaitActive ("[CLASS:Notepad]", "")
Send("Hello from Notepad.{ENTER}1 2 3 4 5 6 7 8 9 10{ENTER}")
Send ("^s")
WinWaitActive("Сохранить как", "") //тут добавил
WinActivate("Сохранить как", "")
ControlSend("Сохранить как", "", "Edit1", @DesktopDir&"\sacredboy")
$hwnd=ControlGetHandle ( "Сохранить как", "", "ComboBox3" )
_GUICtrlComboBox_SelectString ($hwnd, "Текстовые документы (*.txt)")
$hwnd=ControlGetHandle ( "Сохранить как", "", "ComboBox4" )
_GUICtrlComboBox_SelectString ($hwnd, "UTF-8")
ControlClick( "Сохранить как", "", "Button2" )
|
Потому что на скрине в шапке темы написано Save As ... а у меня WinGetPos("Сохранить как")
Трудно поменять названия ?
Слово #include не должно иметь заглавных букв!! (так к слову)
|
Цитата:
Цитата FlatX007
Слово #include не должно иметь заглавных букв!! (так к слову) »
|
первый раз такое слышу...в справке по автоиту во всех примерах с большой буквы написано!
|
Цитата:
Цитата FlatX007
Слово #include не должно иметь заглавных букв!! (так к слову) »
|
это не так ;)
|
Цитата:
Цитата Alex2103
в справке по автоиту во всех примерах с большой буквы написано! »
|
А ну найди мне пример- скрипта где написано с заглавной буквы ... нет ни одного!
|
да поголовно во всех примерах!
Код:
Function Reference _GUICtrlToolbar_GetButtonRect
--------------------------------------------------------------------------------
Retrieves the bounding rectangle for a button
#Include <GuiToolBar.au3>
_GUICtrlToolbar_GetButtonRect($hWnd, $iCommandID)
хоты вы правы...в примерах все с маленькой....а в хелпе с большой...
расскажите хоть в чем тайный смысл?
|
в чем проблем? берите любой скрипт, поменяйте первую букву на заглавную, потом вторую, потом все, потом чередуйте заглавные и строчные. А все для чего? чтобы убедиться, что ключевые слова в Autoit не чувствительные к регистру :teeth:
|
Время: 18:38.
© OSzone.net 2001-