2010-06-10 2 views
0

listViewControl 내부에 정의 된 '확인'및 '선택 취소'확인란을 사용해야하는 Autohotkey 스크립트를 작성하고 있습니다.Autohotkey를 사용하여 ListView에서 확인란을 선택 상태로 설정하는 방법

나는 LVM_SETITEMSTATE 매개 변수를 사용하여 listview (또는 아마도 listview 항목 자체에 SendMessage를 사용하고 있습니까?)라고 생각합니다. 하지만 정확한 형식을 알지 못합니다 ... 아무도 아이디어가 없습니까?

SendMessage, LVM_SETITEMSTATE, 1000, SysListView321 

는 내가 1000 확인란이 선택되며, 2000 그가 선택하지 않은 수 있다는 것을 의미한다는 것을 의미한다고 생각합니다.

각 ListViewItem에 대해 루프를 수행해야합니까?

나는 또한

LV_Modify(0, "+Checked") 

를 사용하여 시도했다 그러나 나던도 작동하는 것 같다.

문제를 강조하기 위해 내 목록보기를 만들지 않고 기존 응용 프로그램 ListView의 상태를 조작하려고합니다. (저는 설치 프로그램을 실행하고 AutoHotKey 스크립트를 사용합니다. 각 화면의 다음 버튼을 누르지 만이 화면에서 먼저 모든 구성 요소를 선택하고 다음 화면으로 이동해야합니다. AutoHotKey 전문가가 여기에 있습니까? 이 문제 (비 우아한 방법을) 해결

답변

2

한 가지 방법은 다음과 같습니다

ControlGet, List, List,, SysListView321,,,, 
{  
    Loop, Parse, List, `n ; Rows are delimited by linefeeds (`n). 
    {   
     RowNumber := A_Index 
     Loop, Parse, A_LoopField, %A_Tab% ; Fields (columns) in each row are delimited by tabs (A_Tab). 
     {        
      if A_Index = 3 
      {    
       IfInString, HaystackTemp, %A_LoopField% 
       {      
        ControlSend, SysListview321, {Space}       
       } 
      } 
     } 
     ControlSend, SysListview321, {Down}       
    } 
} 

당신은 더 우아한 방법을 알고 계십니까?

관련 문제