Что нового

выбор элемента выпадающего списка

autum

Новичок
Сообщения
1
Репутация
0
Здравствуйте.

Пытаюсь сделать сабж, а именно выбрать принтер в диалоге печати

Код:
$hWnd = ControlGetHandle ( "Печать", "", "[CLASS:ComboBox; INSTANCE:1]")
MsgBox (0,"хэндл",$hWnd);
$LP = _GUICtrlComboBox_SelectString($hWnd, "RICOH №2")
MsgBox (0,"ИД",$LP);


первый месаджбокс показывает правильный хэндл (такой же как и Autoit Windows Info)
второй - упорно "-1", не зависимо какую строку пишу
что я делаю не так?
 
A

Alofa

Гость
Попробуйте так:
Код:
#include <GuiComboBox.au3>

$hWnd = ControlGetHandle ( "Печать", "", "[CLASS:ComboBox; INSTANCE:1]")
MsgBox (0,"хэндл",$hWnd);
$LP = __ComboBox_SelectString($hWnd, "RICOH №2")
MsgBox (0,"ИД",$LP);

Func __ComboBox_SelectString($hWnd, $sText, $iIndex = -1)
	If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
	Local $aGetList = StringSplit(_GUICtrlComboBox_GetList($hWnd), '|', 2)
	Local $sPattern = '(?i)^' & StringRegExpReplace($sText, '([^\w\hА-ё])', '\\$1')
	If $iIndex = -1 Then $iIndex = 0
	For $i = $iIndex To UBound($aGetList) - 1
		If StringRegExp($aGetList[$i], $sPattern) Then Return $i
	Next
	If $iIndex > 0 Then
		For $i = 0 To $iIndex - 1
			If StringRegExp($aGetList[$i], $sPattern) Then Return $i
		Next
	EndIf
	Return -1
EndFunc   ;==>__ComboBox_SelectString
 
Верх