|
私は日経新聞CD-ROMを使って特定の期間の特定のページを印刷するwindowsマクロを作っているのですが、子ウィンドウのtextboxに入力したり、特定のボタンを押せずに困っています。
↓このように親ウィンドウのIDは上手く取得でき、アクティブにできます。 id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300) CTRLWIN(id, ACTIVATE)
↓しかし、子ウィンドウのIDは取得できず、アクティブにできません。 id = GETID("記事検索", "ThunderRT6FormDC",300) CTRLWIN(id, ACTIVATE)
「マクロの記録」を有効にして、子ウィンドウを左クリックしアクティブにしてから、タブキーを何回か押下して、子ウィンドウのボタンを選択してからエンターキーを押下し、記録停止⇒コードを見るとアクティブになっているのは親ウィンドウだし、キーボード操作は記録されていません。
↓強引に下記のコードを入れても親ウィンドウに命令が行き、巧く行きません。 SENDSTR(id, "PG001") //textboxにPG001と送る KBD(VK_TAB, CLICK, 100) //タブクリック KBD(VK_RETURN, CLICK, 100) //リターン押下 CLKITEM(id, CLK_BTN , 1) //1番目のクリックボタンを押下
なお、BTN(LEFT,CLICK,742,461,609)などクリックを使って代用しようとすると、CD-ROM起動時に毎回ウィンドウの座標が変わるので変なところがクリックされ巧く行きません。
↓このサイトを参考にし、全てのオブジェクトを取得した結果、 https://stuncloud.wordpress.com/2012/05/22/uwsc-%E6%8C%87%E5%AE%9A%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E4%B8%8A%E3%81%AE%E5%90%84%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB/
↓このような表示が得られました。 「日経 全文記事データベース」が親、「記事検索」と「検索結果」が子ウィンドウになります。 "日経 全文記事データベース", "ThunderRT6MDIForm" "", "ToolbarWndClass" "", "ToolbarWindow32" "", "MDIClient" "検索結果", "ThunderRT6FormDC" "", "ThunderRT6TextBox" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "記事検索", "ThunderRT6FormDC" "", "ThunderRT6TextBox" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "", "ThunderRT6CommandButton" "メニュー", "ThunderRT6FormDC" "", "StatusBarWndClass"
|
No.4133 2017/06/15(Thu) 09:31:06
|
☆ Re: 子ウィンドウのボタンが押せない / 森 |
|
|
私は普段web系がメインなのでgetidを使うことはほとんどない無いのですが、ヘルプによると第4引数を指定することで子ウインドウが取得できるようですね。 戻値 = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] ) MDI子タイトル: MDIウィンドウ中の子ウィンドウタイトル
なので、以下でどうでしょうか?
// 子ウィンドウのIDを取得 id = GETID("日経 全文記事データベース", , , "記事検索")
ダメならクラスも指定してみてください
|
No.4134 2017/06/16(Fri) 10:52:51
|
|
☆ Re: 子ウィンドウのボタンが押せない / 森 |
|
|
> BTN(LEFT,CLICK,742,461,609)などクリックを使って代用しようとすると、 > CD-ROM起動時に毎回ウィンドウの座標が変わるので変なところがクリックされ巧く行きません。
これに関してはウインドウを決まった位置に移動させることで簡単に対処できます。
id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300) CTRLWIN(id, ACTIVATE) acw(id , 0 , 0) //----- 必要であれば、第4〜5引数で大きさも固定してください。
|
No.4135 2017/06/16(Fri) 10:57:20
|
|
☆ Re: 子ウィンドウのボタンが押せない / sage |
|
|
森 さま 本当にありがとうございます!
>// 子ウィンドウのIDを取得 >id = GETID("日経 全文記事データベース", , , "記事検索") この方法で子ウィンドウをアクティベート出来るようになりました!
>id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300) >CTRLWIN(id, ACTIVATE) >acw(id , 0 , 0) //----- 必要であれば、第4〜5引数で大きさも固定してください。 親ウィンドウ、子ウィンドウ両方の座標を(0,0)にすることで、どのボタンも巧くクリック出来るようになりました!
本当に助かりました!重ねてお礼申し上げます。m(__)m
|
No.4136 2017/06/17(Sat) 16:11:16
|
|