Что нового

ComboBox Как получить список элементов и выбрать один из них?

wer_wolf

Новичок
Сообщения
8
Репутация
0
Здравствуйте только начала изучить AutoIT если можно помогите с вопросом
Есть в программе два элемента ComboBox значения которых меняются.
Нужно получить список всех элементов, а потом выбрать нужный или все по порядку.
Вот сам элемент в WindowInfo
>>>> Control <<<<
Class: ComboBox
Instance: 4
ClassnameNN: ComboBox4
Name:
Advanced (Class): [CLASS:ComboBox; INSTANCE:4]
ID: 1006
Text:
Position: 577, 108
Size: 134, 21
ControlClick Coords: 127, 13
Style: 0x50012302
ExStyle: 0x00000004
Handle: 0x00051266
Пытаюсь сделать в лоб

Код:
$sTitle = 'Catalog - [Поиск в Прайс-Листе]' ;заголовок окна
$hWin = WinWait($sTitle, '', 5);
If Not $hWin Then
    MsgBox(16, 'Error', 'Нет окна');
    Exit
 EndIf
ControlClick($hWin, '', '[CLASS:Button; INSTANCE:1]');клик по кнопке
For $i = 5 To 1 Step -1
	 ControlFocus ( $sTitle, '', '[CLASS:Edit; INSTANCE:4]')
	 Send ( "{DOWN}", '' )
	 $text=ControlCommand ( $sTitle, '', '[CLASS:ComboBox; INSTANCE:4]', "GetCurrentSelection", "" )
     MsgBox(4096, '',$text)
Next

Думал поступить просто и тупо ставить фокус в элемент и нажимать на клавиатуре вниз, а потом вычитывать значения но в результате вижу одно и тоже значение.
Если не сложно подскажите или пните в похожий пример?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
wer_wolf

Нужно использовать функции из GuiComboBox.au3
http://autoit-script.ru/autoit3_docs/libfunctions/guicombobox%20management.htm

например,
Код:
_GUICtrlComboBox_GetListArray
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
Спасибо большое помогло
получил вот такую конструкцию

Код:
#include <GuiComboBox.au3>

$sTitle = 'Catalog - [Поиск в Прайс-Листе]' ;заголовок окна
$hWin = WinWait($sTitle, '', 5);
If Not $hWin Then
    MsgBox(16, 'Error', 'Нет окна');
    Exit
 EndIf

Opt("GUIDataSeparatorChar", "|") ; 
$hListView1 = ControlGetHandle($sTitle, '', '[CLASS:ComboBox; INSTANCE:4]')
$cblist=_GUICtrlComboBox_GetList($hListView1)
MsgBox(4096, '',$cblist)
$aList = StringSplit($cblist, "|")
 For $x = 1 To $aList[0]
        ;MsgBox(4096, '',$aList[$x])
		ControlCommand ( $sTitle, '', '[CLASS:ComboBox; INSTANCE:4]', "SelectString", $aList[$x])
		ControlClick($hWin, '', '[CLASS:Button; INSTANCE:1]');
    Next

Не знаю на сколько правильно но работает и это радует.

А не подскажите как получить значение из вот такого элемента
>>>> Control <<<<
Class: XTPReport
Instance: 2
ClassnameNN: XTPReport2
Name:
Advanced (Class): [CLASS:XTPReport; INSTANCE:2]
ID: 100
Text:
Position: 233, 138
Size: 1440, 367
ControlClick Coords: 516, 172
Style: 0x50210000
ExStyle: 0x00000000
Handle: 0x001512CA
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
wer_wolf [?]
А не подскажите как получить значение
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх