質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.80%

IE11で、ファイルダウンロードの自動化(UWSC,Win32API)

受付中

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 11K+

tkgoya

score 7

前提

緊急です。
下記のような定型処理があります。

  1. IEで、あるサイトにログイン。
  2. テキストボックスに検索条件を入力し、エンター(①)。※ダウンロード可能なファイル一覧が表示
  3. 1件目のファイルを選択、ダウンロードボタンを押下。
  4. ダウンロード通知バーより、「名前を付けて保存」をクリック(②)

これをUWSCにて自動化・スケジュール登録し、運用しているのですが、
実行端末(Win7)にリモートデスクトップで接続していないと動作しません。

実現したいこと

実行端末(Win7)の電源を入れた後、一度だけリモートデスクトップにてログインを済ませたら、
二度とリモートデスクトップで接続しなくても、きちんと動作するようにしたいです。

発生している問題

前提にある、エンター(①)クリック(②)の部分が主な原因と考えております。

  • まずエンター(①)ですが、検索ボタンがある訳ではなく本当にエンターキーを入力しないといけません。これをKBD(VL_RETURN)で実装しているのですが、非ログイン時には上手くエンターキーが送信されず、動作しません。
  • 続いてクリック(②)ですが、IE9以降、ファイルダウンロード時に出現するようになったダウンロード通知バーをクリックせねばならず、BTN(LEFT,CLICK,782,300,100)のように座標指定でクリックするという実装ですが同じく非ログイン時にはクリックされず、ダウンロードできません。

その他

UWSCじゃなくても、Win7上で動作するものであれば何でも構いません。何でもいいのでみなさんの知恵をお貸しください。宜しくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

0

UWSCは分からないため、回答に値しないかもしれませんが…
UWSCのFAQにて、代替コマンドが例示されていますので、試してみてはいかがでしょうか?
リモートデスクトップにて 最小化や接続を切った場合に動作しない

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/01 17:12

    早速のご回答、まことにありがとうございます。
    頂いたリンクですが、FAQ#N44は見落としておりました。早速試してみます!!

    キャンセル

0

wshを使用して自動スクリプトを作成してみては?

'IE待ち
Sub IEWait(IEObj)
  Do While IEObj.Busy = True Or IEObj.readystate <> 4
    WScript.Sleep 100
  Loop
  WScript.Sleep 1000
End Sub


Set IE_APP = CreateObject("InternetExplorer.Application")
With IE_APP
   .Navigate "https://www.google.co.jp/"
   .Visible = True
End With


'表示待機
Call IEWait(IE_APP)
IE_APP.Document.forms("tsf").item("q").value = "検索文字列"


'検索文字列を入力すると画面が切り替わる為待機
Call IEWait(IE_APP)


'検索クリック
IE_APP.Document.forms("tsf").item("btnK").Click
Call IEWait(IE_APP)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/01 17:16

    wshでも、実現可能であれば試してみたいです。
    問題の「エンターキー送信」や、「ダウンロード通知バーのクリック」について、何かアイデアありますでしょうか?

    キャンセル

  • 2016/11/01 18:10

    Enterではなければいけないのですか?ボタンの押下とか、submitができればいいのでは?「ダウンロード通知バーのクリック」もクリックのイベントを呼び出すのでは駄目ですか?

    キャンセル

0

普通のデスクトップアプリケーションではなくウェブブラウザであれば、
uwscではなくSeleniumの方がいいかもしれません。
Seleniumはweb特化型のGUI自動テストツールです(というかwebオンリーだったかな?確か)
WebのUIテスト自動化 - Seleniumを使ってみる

後はこれとjenkinsとか使えばリモート上で完全自動化できる・・・かも?
上記ふたつを組み合わせて自動で初音ミクの画像を収集する方法の解説サイト

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

同様の開発実績があります。

エンター①はウィンドウのIEを取得し、

SCKEY(window_id, VK_RETURN)


とすることで対象のウィンドウに対してキー操作が実行されます。

クリック②は座標指定でなくても、別スレッドの動作を監視し、
ダウンロード通知バーが表示された際に指定ボタンをクリックする
方法で解決できそうです。

Thread PopupWin()
3番の処理
省略

Procedure PopupWin()
  id = GetID("Windows", "#32770", -1)
  CLKITEM(id, "名前をつけて保存", CLK_ACC)
  省略
Fend

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.80%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る