Показать полную графическую версию : Нужна помощь по ComboBox
sacredboy
07-09-2009, 15:31
Начинаю изучать АвтоИТ. Начал с уроков из хэлпа.
Начал как написано:
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'ы отправить то что мне нужно.
http://img7.imageshack.us/img7/8992/saveasw.jpg
Например я хочу:
Save in - C:\Program Files\AutoIT или просто Desktop.
File name - sacredboy.
Save as type - Text Documents (*.txt).
Encoding - UTF-8.
и в конце все это дело сохранить (Send ("!s"))
Что нужно прописывать и в каком порядке?
FlatX007
07-09-2009, 18:13
Правда ни когда этим не занимался ... :)
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]", "")
sacredboy
07-09-2009, 20:07
FlatX007, а Вы не подскажете как раскрыть КомбоБокс Save in, что вместо флэшки PQI файл сохранился на Десктоп или диск Д. В вашей версии скрипта этого нет.
Грубо говоря - Зачем Вам все это??? ИМХО легче будет
$hOpen = FileOpen("C:\Program Files\AutoIT\sacredboy.txt",128)
FileWrite($hOpen,"Какой то текст")
FileClose($hOpen )
И ВСЕ!! Зачем делать автомвтизацию блокнота???
P.S. Если непонятно что за цифры 128 - посмотрите в справке
Если вам показалось что я "кричу" - не обращайте внимания, я чутка нервничаю
FlatX007
07-09-2009, 22:37
В вашей версии скрипта этого нет. »
Вам бы всё сразу, и готовое... а сделать по образцу ?
Во вторых - кнопка полезное сообщение работает т.к. я всё таки потратил своё личное время на создание ответа на ваш вопрос... если вам не трудно.. (просто отпадает всякое желание отвечать :happy: )
sacredboy
08-09-2009, 07:45
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.
http://img215.imageshack.us/img215/1578/tollbw.th.jpg (http://img215.imageshack.us/i/tollbw.jpg/)
Пробовал так:
ControlClick ("Сохранить как", "", "ToolbarWindow324", "C:\Users\Alexander\Documents")
не работает.
FlatX007
08-09-2009, 15:49
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]", "")
Alex2103
08-09-2009, 22:04
Вот так можно попробывать:
#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" )
sacredboy
08-09-2009, 23:11
FlatX007, последняя версия скрипта у Вас сработала? У меня Ваш скрипт все равно останавливается на окне которое показано в первом сообщении.
Alex2103, выдает такую ошибку:
Alex2103
08-09-2009, 23:13
sacredboy, а про #Include <GuiComboBox.au3> не забыли?
sacredboy
08-09-2009, 23:44
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" )
Alex2103
08-09-2009, 23:52
вот в таком виде у меня нормально работает:
#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" )
FlatX007
09-09-2009, 01:07
sacredboy »
Потому что на скрине в шапке темы написано Save As ... а у меня WinGetPos("Сохранить как")
Трудно поменять названия ?
Alex2103 »
Слово #include не должно иметь заглавных букв!! (так к слову)
Alex2103
09-09-2009, 09:22
Слово #include не должно иметь заглавных букв!! (так к слову) »
первый раз такое слышу...в справке по автоиту во всех примерах с большой буквы написано!
Слово #include не должно иметь заглавных букв!! (так к слову) »
это не так ;)
FlatX007
09-09-2009, 12:58
в справке по автоиту во всех примерах с большой буквы написано! »
А ну найди мне пример-скрипта где написано с заглавной буквы ... нет ни одного!
Alex2103
09-09-2009, 12:59
да поголовно во всех примерах!
Function Reference _GUICtrlToolbar_GetButtonRect
--------------------------------------------------------------------------------
Retrieves the bounding rectangle for a button
#Include <GuiToolBar.au3>
_GUICtrlToolbar_GetButtonRect($hWnd, $iCommandID)
хоты вы правы...в примерах все с маленькой....а в хелпе с большой...
расскажите хоть в чем тайный смысл?
в чем проблем? берите любой скрипт, поменяйте первую букву на заглавную, потом вторую, потом все, потом чередуйте заглавные и строчные. А все для чего? чтобы убедиться, что ключевые слова в Autoit не чувствительные к регистру :teeth:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.