2010-05-04 5 views
1

AutoIt을 사용하여 자동 설치 응용 프로그램을 만듭니다. ListBox 컨트롤이 들어있는 대화 상자가 있고 목록 상자에는 사용자에 대한 선택 항목이 있습니다 (자세한 선택 항목은 사용자의 컴퓨터에 따라 달라집니다. 일부 사용자의 경우 하나의 선택 항목 만있을 수도 있고 일부 사용자의 경우 세 가지 선택 항목 등이있을 수 있습니다) 그래서 나는 목록 상자에 텍스트를 가져 와서 결정을 내리고 싶다. 다음 코드를 시도했지만 작동하지 않았습니다.AutoIt을 사용하여 ListBox에서 텍스트를 가져 오는 방법

; 2223 is the ID of listbox 

$txt = ControlGetText("Select Web Site", "", "[ID:2223]") 
Msgbox(0, "", $txt) 

실행 후 $txt이 null입니다.

그럼 Listbox에서 텍스트를 가져 오려면 어떻게해야합니까? 내가하고 싶은 것은, 목록에서 "기본 웹 사이트"라는 항목 중 하나를 선택하는 것입니다

Class: WindowsForms10.Listbox.app.0.33c0d9d 

답변

0

하지만 다음은

AutoIt이 V3 윈도우 정보에 의해 감시 목록 상자의 속성입니다 나는이 목록 상자가 초점을 확인한 다음 나는 "데프"를 전송하여 항목을 "기본 웹 사이트"를 선택 처음에는

:

는 목록의 내용을 가지고 할 수없는 것, 그래서 결국 나는 다른 방법을 시도
ControlFocus($Title, "", "[NAME:lbWebSites]") 
; Select the option "Default Web Site", so press "def" to set the desired item. 
Send("Def") 
1

특히 PC가 잠겨있는 경우 '보내기'명령이 신뢰할 수없는 것으로 나타났습니다.

'ControlSend'는 내가 원하는 곳에 키 스트로크를 얻기 위해 항상 노력해 왔습니다. 에 대해 어떻게

+1

게시물에 [서명 또는 태그 라인을 사용하지 마십시오.] (http://stackoverflow.com/faq#signatures)하십시오. – meagar

0

: 항목이 콤보 상자에 있다면

ControlCommand("My GUI", "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", "item2") 
1

내가 확인하는 테스트를 썼다 확인합니다. GuiComboBox.au3을 사용하는 목록 상자와 유사한 기능이있을 수 있습니다.

Func DoesItemExistInComboBox($windowtitle, $windowtext, $comboboxcontrol, $itemtocheck) 
    $returnvalue = 0 
    $ComboBoxHandle = ControlGetHandle($windowtitle, $windowtext, $comboboxcontrol) 
    $ComboBoxArray = _GUICtrlComboBox_GetListArray($ComboBoxHandle) 
    For $i = 0 TO UBound($ComboBoxArray)-1 
     If $ComboBoxArray[$i] = $itemtocheck Then 
      $returnvalue = 1 
     EndIf 
    Next 
    return $returnvalue 
EndFunc 
관련 문제