如何获取control为listbox里的其中一项

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: tmplinshi, arcticir

kd83kdi93
Posts: 2
Joined: 04 Dec 2020, 21:43

如何获取control为listbox里的其中一项

Post by kd83kdi93 » 04 Dec 2020, 21:58

如题,目前我只能通过ControlGet获取对应listbox里的所有文本,我现在的想法是通过遍历文本和listbox初始坐标然后计算对应的位置
再通过mousemove到坐标点击,但是这种方式在不通屏幕分辨率估计不够准确,有没有其他什么方法可以直接点击listbox里的指定选项?
garry
Posts: 2624
Joined: 22 Dec 2013, 12:50

Re: 如何获取control为listbox里的其中一项

Post by garry » 06 Dec 2020, 05:02

a Listbox example ( ? )
or maybe ask also in english forum

Code: Select all

;- 如何获取control为listbox里的其中一项 
;- https://www.autohotkey.com/boards/viewtopic.php?f=27&t=84048
;modified=20201209  added 2 buttons/guicontrol
;created =20201206
#warn
#NoEnv
SendMode, Input
SetWorkingDir, %A_ScriptDir%
Gui,2: -dpiscale
GUI,2:+AlwaysOnTop
Gui,2: Color,Black, Black
Gui,2: Font,s14 CGray,Lucida Console
Gui,2:Add, ListBox, x5     y10   w1180 h300 cYellow gRun1 vLB1a
Gui,2:add,button , x10  y330 w250 h35 gA1,URL-LINKS
Gui,2:add,button , x280 y330 w300 h35 gA2,Desktop-LINKS
GUI,2:show, NA W1200 H400 X20 Y10,Test
gosub,a1
return
;----------------------------------------------------------
2GuiClose:
ExitApp
;-----------------
Run1:
Gui,2: Submit, Nohide
try
 run,%lb1a%
return
;-------------------------
a1:
e2:="
(Ltrim join|
http://www.xinhuanet.com/english/2020-11/14/c_139516497.htm
http://www.xinhuanet.com/
https://www.theguardian.com/
https://www.dr.dk/radio/
https://news.google.com/news/headlines?hl=nl
http://thesciencepost.com/
"
)
GuiControl,2:,LB1a,|
GuiControl,2:,LB1a,%e2%
return
;-------------------------
a2:
GuiControl,2:,LB1a,|
fd1=%a_desktop%
e:=""
Loop, Files, %fd1%\*.*,D                     ;- desktop folders
    e .= A_LoopFileFullPath . "|"
;Loop, Files, %fd1%\*.lnk , R                ;- desktop *.lnk  ( links )
;    e .= A_LoopFileFullPath . "|"
GuiControl,2:,LB1a,%e%
return
;===============================================================

Last edited by garry on 10 Dec 2020, 15:17, edited 2 times in total.
fwejifjjwk2
Posts: 76
Joined: 10 Aug 2019, 01:49

Re: 如何获取control为listbox里的其中一项

Post by fwejifjjwk2 » 08 Dec 2020, 08:35

listbox 的選項顯示的文字和觸發的功能都是「人寫的」。
修改腳本,在字串寫入 listbox 之前給它們一個變量,調用這個變量即可獲得所有的字串。
把選項觸發的功能寫成函數,然後調用函數就行了,不需要叫出 listbox。
kd83kdi93
Posts: 2
Joined: 04 Dec 2020, 21:43

Re: 如何获取control为listbox里的其中一项

Post by kd83kdi93 » 11 Dec 2020, 02:38

fwejifjjwk2 wrote:
08 Dec 2020, 08:35
listbox 的選項顯示的文字和觸發的功能都是「人寫的」。
修改腳本,在字串寫入 listbox 之前給它們一個變量,調用這個變量即可獲得所有的字串。
把選項觸發的功能寫成函數,然後調用函數就行了,不需要叫出 listbox。
我可能没说清楚 ,我想使用ahk来模拟点击其他程序,不是我自己使用ahk写ListBox程序,现在问题是ahk好像只能使用controlget获取到LIstBox里所有选项组成的一个巨大的字符串,而不能获取到ListBox内部选项的control信息,所以我想问问有没有什么其他函数或者命令有这种功能,如果实在不行我只能自己计算坐标然后模拟移动鼠标并点击了。。
Post Reply

Return to “请求帮助”