UWSCでIEを自動操作していたら下記のような場面に遭遇。
手前の「名前を付けて保存」ダイアログの「はい」を押したい。
これまでなら、
CLKITEM(GETID(“名前を付けて保存”,”#32770″),”はい”, CLK_LEFTCLK)
などと記述すればよかったのだが今回はうまくいかない。
理由は「名前を付けて保存」というタイトルで2つのダイアログが出ているため。
そこで区別するコードを作った。
//サンプルコード
/////////////////////////////////////////////////////////////
// 全てのウインドウIDをゲット(ALL_WIN_ID[]変数に入る)
for i = 0 to GETALLWIN()-1
//「名前を付けて保存」のダイアログであるなら、
ifb (STATUS(ALL_WIN_ID[i], ST_CLASS) = “#32770”) AND (STATUS(ALL_WIN_ID[i], ST_title) = “名前を付けて保存”)
//ウインドウ内のテキストを取得。取得ができたらなら、
ifb 0 < GETITEM(ALL_WIN_ID[i],ITM_ACCTXT)
//取得したテキストに「上書きしますか」の文言があるか。あればクリック。GETITEMで取得した情報は配列変数 ALL_ITEM_LIST[] に格納される。
/////////////
ifb 0 < POS(“上書きしますか”,ALL_ITEM_LIST[0]) //目当ての文字列はALL_ITEM_LIST[0]にある
CLKITEM(GETID(“名前を付けて保存”,”#32770″),”はい”, CLK_LEFTCLK)
endif
/////////////
endif
endif
next
/////////////////////////////////////////////////////////////