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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: 如何获取control为listbox里的其中一项

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

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信息,所以我想问问有没有什么其他函数或者命令有这种功能,如果实在不行我只能自己计算坐标然后模拟移动鼠标并点击了。。

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

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
;===============================================================

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

by kd83kdi93 » 04 Dec 2020, 21:58

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

Top