|
お世話になっております。
IEの通知バーの「名前をつけて保存」を実行したいと思っております。 IE9を使用しておりますが、今後もしかしたらバージョンをあげる可能性もあります…
------------- id = GETID("TEST - Windows Internet Explorer", "IEFrame") while True CTRLWIN(id, ACTIVATE) Sleep(1) msgid = HNDtoID(GETCTLHND(id,"DirectUIHWND",2)) ifb CLKITEM(msgid, "保存", CLK_ACC, False) SCKEY(id, VK_DOWN) KBD(VK_DOWN) CLKITEM(GETID("","#32768"),"名前を付けて保存(A)", CLK_ACC or CLK_BACK or CLK_MUSMOVE or CLK_LEFTCLK) if GETID("名前を付けて保存", "#32770", 1) > 0 then break endif wend
id = GETID("名前を付けて保存", "#32770") Sleep(1) SendStr(id, GET_UWSC_DIR+"TEST.csv", 2, True) // パス\ファイル名 //GET_UWSC_DIR\Data.csv
CLKITEM(id, "保存(S)", CLK_BTN)
If GETID("名前を付けて保存の確認", "#32770")>0 then id=GETID("名前を付けて保存の確認", "#32770") SLEEP(1) CLKITEM(id, "はい(Y)", CLK_BTN) endif
//Repeat // Sleep(1) //Until Pos("ダウンロードが完了", GETSTR(msgid, 1, STR_ACC_STATIC))>0 // 完了待ち //CLKITEM(msgid, "閉じる", CLK_ACC) // Sleep(4)
----------------------------------
色々調べて、この段階までたどり着きました。 通知バー(ダウンロードダイアログ)が出ている前提で作ってます。 [保存▼]の ▼がどうしても押せません。 このソースの場合、 [▼]を押せば、名前を付けて指定の場所に保存してくれます。 高度な記録等で、どのような操作になっているのかを 確認してみましたが、それをコピペしても状況は変わりませんでした。
通知バーの[保存▼]自体が、チカチカ?するだけで、 ▼が押されることはありません。 どのようにしたら、押されますでしょうか?
分かりにくい質問で大変申し訳ないですが、 よろしくお願い致しますorz
|
No.854 2015/02/16(Mon) 14:12:57
|
☆ Re: IEの通知バー「名前を付けて保存」を押したい / しろまさ |
|
No.855 2015/02/16(Mon) 15:26:27
|
|
☆ Re: IEの通知バー「名前を付けて保存」を押したい / ざろん |
|
|
ソースの while部分を while True CTRLWIN(IEid, ACTIVATE) Sleep(1) msgid = HNDtoID(GETCTLHND(IEid,"DirectUIHWND",2)) ifb CLKITEM(msgid, "保存", CLK_ACC or CLK_BACK, False) KBD(VK_DOWN) CLKITEM(GETID("","#32768"),"名前を付けて保存", CLK_ACC or CLK_BACK) if GETID("名前を付けて保存", "#32770", 3) > 0 then break endif wend と変更してみても、保存ボタンがチカチカするだけでした…。
|
No.856 2015/02/16(Mon) 16:04:01
|
|
☆ Re: IEの通知バー「名前を付けて保存」を押したい / Nagatani |
|
|
私はIE11ですが下記のようにして処理しました。
//保存をクリック(名前を付けて保存を選択) ACW(GetID("","IEFrame")) CLKITEM(GetID("","IEFrame"), "保存", CLK_ACC or CLK_BACK, False) KBD(VK_DOWN) REPEAT SLEEP(0.2) UNTIL GETID("","#32768") SLEEP(2) CLKITEM(GETID("","#32768"),"保存", CLK_ACC or CLK_BACK)
|
No.857 2015/02/16(Mon) 21:00:32
|
|
☆ Re: IEの通知バー「名前を付けて保存」を押したい / しろまさ |
|
|
ほんとですねぇ。あまりに言うこときかないんで禁断の神ツールに手を出しました。。
Call Image.uws // http://d.hatena.ne.jp/junjun777/20131002/uwsc_clipboard_image ID = HNDtoID(GetCtlHND(GetID("", "IEFrame"), "DirectUIHWND", 2)) // GetID("", "IEFrame") ← これだけでも動く。 IDx = Status(ID, ST_X); IDy = Status(ID, ST_Y) Image.Set(▼) If CHKIMG(,-1,IDx,IDy,IDx + Status(ID, ST_WIDTH),IDy + Status(ID, ST_HEIGHT)) _ Then BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y) CLKITEM(GETID("","#32768",3),"名前を付けて保存(A)")
TextBlock ▼ KAAAAAcAAAAEAAAAAQAgAAMAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAA/wAA /wAAAOrq6gDq6uoAo6OjAAAAAACjo6MA6urqAOrq6gDq6uoAo6OjAAAAAAAAAAAA AAAAAKOjowDq6uoApKSkAAAAAAAAAAAAAAAAAAAAAAAAAAAApKSkAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAA= EndTextBlock
|
No.858 2015/02/17(Tue) 10:28:43
|
|
☆ Re: IEの通知バー「名前を付けて保存」を押したい / ざろん |
|
|
Nagatani様、しろまさ様、 回答頂きありがとうございます。
何故か上手く行ってしまいました。 私のソースは二度手間?動作をさせており、それも悪いのかもしれませんが… 回答頂きありがとうございました!返信おくれて大変申し訳ありませんでした。 下記、上手く動作したコードになります。
id = GETID("TEST - Windows Internet Explorer", "IEFrame") while True CTRLWIN(id, ACTIVATE) Sleep(1) msgid = HNDtoID(GETCTLHND(id,"DirectUIHWND",2)) ifb CLKITEM(msgid, "保存(S)", CLK_ACC or CLK_BACK, False) KBD(VK_DOWN) CLKITEM(GETID("","#32768"),"名前を付けて保存(A)", CLK_ACC or CLK_BACK or CLK_MUSMOVE or CLK_LEFTCLK) if GETID("名前を付けて保存", "#32770", 1) > 0 then break endif wend
id = GETID("名前を付けて保存", "#32770", -1) SLEEP(1) CLKITEM(id, "保存(S)", CLK_BTN) id = GETID("名前を付けて保存の確認", "#32770", -1) SLEEP(1) CLKITEM(id, "はい(Y)", CLK_BTN)
id = GETID("名前を付けて保存", "#32770") Sleep(1) SendStr(id, GET_UWSC_DIR+"\test.csv", 2, True) // パス\ファイル名 //GET_UWSC_DIR\Data.csv
CLKITEM(id, "保存(S)", CLK_BTN)
If GETID("名前を付けて保存の確認", "#32770")>0 then id=GETID("名前を付けて保存の確認", "#32770") SLEEP(1) CLKITEM(id, "はい(Y)", CLK_BTN) endif
|
No.866 2015/02/18(Wed) 16:01:43
|
|