|
初めまして。早速ですが質問させていただきます。
clkitem 関数において、リストボックスから複数選択をしたいと考えています。 ヘルプには ※ リストボックス: 複数選択の場合は タブにて アイテム名を繋げる とありますので試してみましたが正常に処理されません。
選択したいアイテムを list_000 と list_001 とします。
clkitem(id, "list_000", CLK_LEFTCLK and CLK_LIST, True, 0) -->list_000 が選択される。戻値 True
clkitem(id, "list_000 list_000", CLK_LEFTCLK and CLK_LIST, True, 0) -->タブでつなぐ。選択されない。戻値 False
clkitem(id, "list_000" "list_000", CLK_LEFTCLK and CLK_LIST, True, 0) -->実行不可:式がおかしい or 型が合ってない
以上のような状況です。どなたか意見をお持ちの方、よろしくお願いします。
uwsc 5.2.3 windows 7 64bit 制御対象ウィンドウ:64bitアプリケーション
|
No.3064 2016/10/26(Wed) 15:09:12
|
☆ Re: CLKITEM リストボックスの複数選択できない / stuncloud |
|
|
"list_000<#TAB>list_001" ではどうですか
|
No.3065 2016/10/26(Wed) 16:15:59
|
|
☆ Re: CLKITEM リストボックスの複数選択できない / stuncloud |
|
|
あと、追加オプションを繋げるときは and じゃなくて or です ちなみに CLK_LEFTCLK and CLK_LIST だと 0 になるので EMPTY 指定と同じになります(多分) ついでに CLK_LEFTCLK or CLK_LIST だとうまくいかないようなので CLK_LIST だけにしましょう
|
No.3066 2016/10/26(Wed) 16:31:54
|
|
☆ Re: CLKITEM リストボックスの複数選択できない / あああ |
|
|
stuncloud 様
ご返信ありがとうございます!
種別指定が意図したものと全然違っていたのですね。 ただ、種別を CLK_LIST のみにし、 clkitem(id, "list_000", CLK_LIST) としたところ list_000 の選択もできなくなることがわかりました。
そこで clkitem(id, "list_000", CLK_LISTVIEW) にすると指定が可能でしたので、私がリストボックスだと思っていたものが実はリストビューだった、ということなのでしょうか。
getitem(id, ITM_LIST, 2, 0, FALSE) で当該リストを取得できていたので種別 CLK_LIST での clkitem ができるものと思い込んでいたのですが...
|
No.3070 2016/10/26(Wed) 22:00:25
|
|
☆ Re: CLKITEM リストボックスの複数選択できない / stuncloud |
|
|
> clkitem(id, "list_000", CLK_LISTVIEW) > にすると指定が可能でしたので、私がリストボックスだと思っていたものが実はリストビューだった、ということなのでしょうか。 そうなのかもしれませんね 現物がないとこちらでは試せませんので、色々試行錯誤していただくしかないと思います TAB区切りがだめそうなら kbd(VK_CTRL, DOWN) した状態でひとつひとつクリックしていくとか? (Ctrl+クリックの再現
> getitem(id, ITM_LIST, 2, 0, FALSE) > で当該リストを取得できていたので種別 CLK_LIST での clkitem ができるものと思い込んでいたのですが... この点は不思議ですね…?
ちなみにこちらでは slctbox(SLCT_LST, (略)) で出て来るリストボックスに対してTAB区切りがうまくいくことを確認しました
|
No.3074 2016/10/27(Thu) 13:52:53
|
|
☆ Re: CLKITEM リストボックスの複数選択できない(解決) / あああ |
|
|
stuncloud 様
検証ありがとうございます。 こちらでも slctbox によるリストと html によるリストで検証してみたところ複数選択ができました。 どうやら制御対象の問題だったようです、お騒がせいたしました。 拙いもので恥ずかしいですが、一応以下に検証時のコードを載せておきます。
listMultipleSelect.uws
// リストボックスのあるウィンドウにマウスオーバーすると、要素 000 と 001 が選択される // Esc キーでスクリプト終了 thread checkMultipleSelect() sleep(1) slctbox(SLCT_LST, -1, "msg", "000", "001", "002")
procedure checkMultipleSelect() i = 0 while !(GETKEYSTATE(VK_ESC)) id = getid(GET_FROMPOINT_WIN) print "second: " + i + " :" + id print clkitem(id, "000 001", CLK_LIST) // print clkitem(id, "000<#TAB>001", CLK_LIST) でもよい sleep(1) i = i + 1 wend fend
list.html
<FORM> <select name="example" size=6 multiple> <option value="000">000</option> <option value="001">001</option> <option value="002">002</option> <option value="003">003</option> <option value="004">004</option> <option value="005">005</option> </select> </FORM>
list.html で作ったリストの選択は firefox,IE ではうまくいきましたが google chrome ではダメでした。 もうよくわかりませんね、別の方法を探すことにします。
ありがとうございました!
|
No.3075 2016/10/27(Thu) 15:39:48
|
|