とある会員サイトで、CSVファイルから情報を取得して、画像ファイルを登録(アップロード)しようとしています。
<form>の中にある要素の<input type = "file"></input>をクリックすると、
「アップロードするファイルの選択」というダイアログが出てきます。
①ダイアログ上部のディレクトリを表示している欄に、画像を保存しているディレクトリを入力。
②ファイル名の欄に、CSVファイルに掲載している画像名を貼り付けて、「開く」をクリック。
③次の画像を登録
という作業を実現したいと思っています。
----------記述してみたソース------------
IE.document.forms[0].elements[2].click() //<form>の中にある要素の<input type = "file"></input>をクリック、ダイアログを立ち上げる。
Up_ID = getid("アップロードするファイルの選択") //ダイアログのウィンドウIDを取得。
SCKEY(Up_ID, VK_TAB, VK_TAB,VK_TAB,VK_TAB,VK_TAB,VK_SPACE) //ディレクトリ情報を入力する欄にカーソルを移動。
SENDSTR(Up_ID,Pic_Dir) //画像アップロード元ディレクトリ情報を貼り付け。
SCKEY(Up_ID,VK_RETURN) //画像アップロード元ディレクトリに移動。
SCKEY(Up_ID,VK_SHIFT,VK_TAB,VK_TAB) //ファイル名を入力する欄にカーソルを移動。
SENDSTR(Up_ID,画像ファイル名) //CSVファイルから読み込んだファイル名を入力。
SCKEY(Up_ID,VK_RETURN) //「開く」をクリックして画像をアップロード。
----------記述してみたソース------------
上記のソース内容を記述してみましたが、動きませんでした。
ダイアログのウィンドウIDが取得できていないようです。
sleep()で待ち時間等を設定しましたが、動きませんでした。
GetId()の記述の仕方はあっていると思うのですが、どうしてウィンドウIDが取得できないのか分かりません。
このような場合、どのようなソースを記述すれば良いのでしょうか?ご教授よろしくお願いいたします。
使用ソフト:UWSC5.2.2.0
OS:Windows7
Internet Explorer:ヴァージョン11
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Windowsが管理している一般的なウィンドウとして作られたダイアログでないとか?
Pro版でデバッガがあるなら、右上「Script」の「Info Under MouseCursor」で情報取得できるか確認とか。
無ければウィンドウ情報を表示するSpy++なんかのツールで確認とか。
uuSpyの詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/winnt/util/se429436 …
MiniSpyの詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/win95/prog/se291933 …
> ダイアログのウィンドウIDが取得できていないようです。
Up_IDに-1が入ってるのを確認したんでしょうか?
Up_IDの値を判定して、処理中断した方が良いです。
> このような場合、どのようなソースを記述すれば良いのでしょうか?
色々手はあります。
ダイアログの出る位置が固定なら、その前提でスクリーン座標をクリック、キー送信したり。
クラスIDが割り当てられているなら、そちらで探したり。
ダイアログの画像認識して入力欄やボタン操作したり。
ご回答ありがとうございます!
>Up_IDに-1が入ってるのを確認したんでしょうか?
>Up_IDの値を判定して、処理中断した方が良いです。
はい、-1の値が出ていました。
Up_ID = getid("アップロードするファイルの選択")
Print Up_ID
と記述してもすぐには表示されずに、
ダイアログを閉じてから少し経ってから-1と表示されました。
-1だから、"アップロードするファイルの選択"というタイトルのウィンドウはなかったよ、ということのようなので、IDが取得できてないということだと思います。
ダイアログが表示されている間にKBD(VK_TAB)等をさせてもカーソルは動きませんでした。
ダイアログ自体がアクティブではないので、sleep(2)として、その待機している間にダイアログをクリックしてアクティブにして、getid(GET_ACTIVE_WIN)でIDを取得してから、SCKEY(Up_ID,VK_TAB)等をしても動きませんでした。
以前に作成したツールで、
IE.navigate("http://shop.jp/images/1_000000000771.jpg")
KBD(VK_Ctrl,Down)
KBD(VK_S)
KBD(VK_Ctrl,UP)
gaz_id = getid("画像の保存")
sckey(gaz_id,VK_Tab,VK_Tab,VK_Tab,VK_Tab,VK_Tab,VK_Space)
というような処理をした時は、ダイアログのウィンドウIDは取得できたので、同じようにやったらいいのかなと思っていたら違っていたようです。
アップロードの時に出てくるダイアログのクラスIDが「#32770"」なのかなと思ってるのですが、どう処理したらいいのか手詰まりな状態です。
http://canal22.org/?s=%E3%82%A2%E3%83%83%E3%83%9 …
↑のやり方をアレンジしたら出来るのかなと思ったのですが、
<input type = "file"></input>にnameが無いので、実現不可能なのかなと・・・
ダイアログが出ている状態でPrintやMsgBoxが表示でき ないので、違うやり方じゃないとムリなのでしょうか。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- その他(プログラミング・Web制作) セレクトボックスで選択された値をコントローラーで使用したい 2 2022/07/26 16:41
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS HTMLを正しく表示させるには 2 2023/06/18 09:12
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CFileDialogの最初のディレクト...
-
絶対パス?絶対アドレス?意味...
-
バッチを用いたフォルダの自動移動
-
Subversionのリポジトリの削除
-
powershell で書いたプログラム...
-
現在位置より2つ上のディレク...
-
visualstudioでc#のdllができない
-
[ ディレクトリ '.' は書き込み...
-
Visual C++ 2005 Express Editi...
-
PHP 画像のアップロードについ...
-
VB.NET 最下位のディレクトリ名...
-
MkDir関数
-
renameでのPermission deniedエ...
-
コマンドプロンプトを指定のデ...
-
posix_getpwuid()の使い方を知...
-
rmdirでフォルダが消せません
-
ファイル選択ダイアログで選択...
-
JAVA内で複数のファイルを削除...
-
教えてください!
-
includeが出来ない訳とは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
VB.NET 最下位のディレクトリ名...
-
MkDir関数
-
現在位置より2つ上のディレク...
-
絶対パス?絶対アドレス?意味...
-
renameでのPermission deniedエ...
-
visualstudioでc#のdllができない
-
ファイル選択ダイアログで選択...
-
FTPでのファイルとディレクトリ...
-
str ! = NULL
-
powershell で書いたプログラム...
-
DLL のロードの順序
-
バッチファイルで特定ファイル...
-
JAVA内で複数のファイルを削除...
-
fopenでファイルが開かない場合...
-
http://localhost/に.htaccess...
おすすめ情報