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

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

こういうの ↓↓

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

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を指定します。

タグ

2013年3月27日 | コメントは受け付けていません。 |

カテゴリー:Q&A

THREAD

THREAD

THREAD 関数名()

スレッドを生成し、指定した関数を実行する

並列で作業させたい場合に活用

THREADはコンピューターの処理単位の1つだと思ってください。
通常、コンピューターは上から順番に処理をして行きますが、
THREADを実行することにより、その関数は別プロセス(別スレッド)で立ち上がり
独自に処理されていきます。
簡単な例を下に記します。
実行させてみるとわかりますが、
最初のA部とB部は1つ1つ処理されますが、
後半のC部とD部は並行処理されます。

FOR A = 1 TO 5
 SLEEP(1)
 FUKIDASI("A:" + (5 - A),G_MOUSE_X,G_MOUSE_Y,0,20)
NEXT


FOR B = 1 TO 5
 SLEEP(1)
 FUKIDASI("B:" + (5 - B),G_MOUSE_X,G_MOUSE_Y,0,20)
NEXT

MSGBOX("AとBが順番に処理されました。続いてTHREADで実施します。")


THREAD ExecuteC()

FOR D = 1 TO 5
 SLEEP(1)
 FUKIDASI("D:" + (5 - D),G_MOUSE_X,G_MOUSE_Y,0,20)
NEXT


PROCEDURE ExecuteC()
 FOR C = 1 TO 5
  SLEEP(1)
  FUKIDASI("C:" + (5 - C),G_MOUSE_X + 50,G_MOUSE_Y + 50,0,20)
 NEXT
FEND

並列で処理させてみよう

以下のスクリプトでは、メモ帳を立ち上げ、片方には英語、もう一方には日本語を書き込みます。
THREADですので、同時に実行されます。

この投稿の続きを読む »

タグ

2012年9月9日 | コメントは受け付けていません。 |

カテゴリー:構文・制御文

このページの先頭へ