参照ファイルのアップロードをしたい

フォームの参照ファイルをアップロードする制御のやり方が分かりません。
関数などありませんか? 

こういうの ↓↓

現状、デフォルトで用意されている専用関数は無いようですが、自作関数で対応出来そうです。

Pro版のrec機能を使いアップロード操作を記録すると、
最終的にダイアログウィンドウを制御できる自作関数が設定されます。

コード例

////編集ポイント
PATH = "C:\Program Files\UWSC\Readme.txt"
URL = "http://canal22.org/qanda/sansyou/"
NAME = "omoro"
////編集ポイントここまで

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate(URL)
BusyWait(IE)

Thread PopupWin("アップロードするファイルの選択","開く(&O)",2,PATH)
IESetData(IE,True,NAME) // FILE
BusyWait(IE)

Procedure PopupWin(title, btn, no=-1, str="")
  id = Getid(title,"#32770",10)
  Sleep(1)
  if no>=0 then Sendstr(id,str,no,True)
  Clkitem(id,btn)
Fend

Procedure BusyWait(ie)
  Sleep(0.5)  // Wait
  Const TIME_OUT = 90
  tm = Gettime()
  repeat
    Sleep(0.2)
    ifb Gettime() - tm > TIME_OUT
      MsgBox("Time Out:BusyWait")
      ExitExit
    endif
  until (! ie.busy) and (ie.readyState=4)
  Sleep(0.5)
Fend

アンサーで確実に出来ると言い切れないのは、自作の関数ではない点と、GETIDで指定するクラス名:#32770に関する情報を持ちあわせていないからです。
念のため3台のパソコンで試した結果、上記コードは正常に動作していました。
それぞれのPCスペックは、WIN7、WIN7、WIN7PROでIEはVER9です。
他のバージョンのブラウザでは試していません。

重要なポイントは、PopupWin関数を設定することと、プラグラム内でThread 生成して実行している点です。

利用にあたっては、ファイルパスなど適宜変更してご利用ください。
NAMEで指定する文字列は、ファイルをアップロードするフォームのnameを指定します。


続きは、ログインもしくは、登録してください



このページの先頭へ