Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Нужна помощь по ComboBox (http://forum.oszone.net/showthread.php?t=149951)

sacredboy 07-09-2009 15:31 1213395

Нужна помощь по 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"))

Что нужно прописывать и в каком порядке?

FlatX007 07-09-2009 18:13 1213477

Правда ни когда этим не занимался ... :)

Код:

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 1213539

FlatX007, а Вы не подскажете как раскрыть КомбоБокс Save in, что вместо флэшки PQI файл сохранился на Десктоп или диск Д. В вашей версии скрипта этого нет.

Medic84 07-09-2009 20:58 1213570

Грубо говоря - Зачем Вам все это??? ИМХО легче будет
Код:

$hOpen = FileOpen("C:\Program Files\AutoIT\sacredboy.txt",128)
FileWrite($hOpen,"Какой то текст")
FileClose($hOpen )

И ВСЕ!! Зачем делать автомвтизацию блокнота???

P.S. Если непонятно что за цифры 128 - посмотрите в справке

Если вам показалось что я "кричу" - не обращайте внимания, я чутка нервничаю

FlatX007 07-09-2009 22:37 1213654

Цитата:

Цитата sacredboy
В вашей версии скрипта этого нет. »

Вам бы всё сразу, и готовое... а сделать по образцу ?

Во вторых - кнопка полезное сообщение работает т.к. я всё таки потратил своё личное время на создание ответа на ваш вопрос... если вам не трудно.. (просто отпадает всякое желание отвечать :happy: )

sacredboy 08-09-2009 07:45 1213818

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")
не работает.

FlatX007 08-09-2009 15:49 1214109

Код:

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 1214348

Вот так можно попробывать:

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" 


sacredboy 08-09-2009 23:11 1214389

FlatX007, последняя версия скрипта у Вас сработала? У меня Ваш скрипт все равно останавливается на окне которое показано в первом сообщении.

Alex2103, выдает такую ошибку:

Alex2103 08-09-2009 23:13 1214391

sacredboy, а про #Include <GuiComboBox.au3> не забыли?

sacredboy 08-09-2009 23:44 1214408

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 1214412

вот в таком виде у меня нормально работает:
Код:

#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 1214448

Цитата:

Цитата sacredboy
sacredboy »

Потому что на скрине в шапке темы написано Save As ... а у меня WinGetPos("Сохранить как")

Трудно поменять названия ?

Цитата:

Цитата Alex2103
Alex2103 »

Слово #include не должно иметь заглавных букв!! (так к слову)

Alex2103 09-09-2009 09:22 1214559

Цитата:

Цитата FlatX007
Слово #include не должно иметь заглавных букв!! (так к слову) »

первый раз такое слышу...в справке по автоиту во всех примерах с большой буквы написано!

kaster 09-09-2009 09:39 1214572

Цитата:

Цитата FlatX007
Слово #include не должно иметь заглавных букв!! (так к слову) »

это не так ;)

FlatX007 09-09-2009 12:58 1214741

Цитата:

Цитата Alex2103
в справке по автоиту во всех примерах с большой буквы написано! »

А ну найди мне пример-скрипта где написано с заглавной буквы ... нет ни одного!

Alex2103 09-09-2009 12:59 1214744

да поголовно во всех примерах!
Код:

Function Reference _GUICtrlToolbar_GetButtonRect 

-------------------------------------------------------------------------------- 
Retrieves the bounding rectangle for a button 
#Include <GuiToolBar.au3>
_GUICtrlToolbar_GetButtonRect($hWnd, $iCommandID)

хоты вы правы...в примерах все с маленькой....а в хелпе с большой...

расскажите хоть в чем тайный смысл?

kaster 09-09-2009 15:07 1214844

в чем проблем? берите любой скрипт, поменяйте первую букву на заглавную, потом вторую, потом все, потом чередуйте заглавные и строчные. А все для чего? чтобы убедиться, что ключевые слова в Autoit не чувствительные к регистру :teeth:


Время: 18:38.

Время: 18:38.
© OSzone.net 2001-