2017年06月 / 05月≪ 123456789101112131415161718192021222324252627282930≫07月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2008.09.26 (Fri)

FC2ブログでファイルを一括アップロード(英語環境対応) - UWSC

FC2ブログでファイルを一括アップロード - UWSC
このコードを英語環境で動かしたら・・・というコメントをいただき、
ちょうどこのパソコンのVirtualPCにも英語版XPが入っていたので喜び勇んで英語環境対応にしました。
ちゃんと日本語環境でも使えます。

使い方は以前と同じ
1.USERIDにFC2ブログのユーザーID、PASSWORDにパスワードを入れるか、IEでFC2ブログにログインしておく(ログイン状態であればID,パスワードは不要)
2.任意の場所にフォルダを作成し(D:\Temp\updirとか)、アップロードしたいファイルを作成したフォルダに入れる
3.「SRC_DIR」に2.で作成したフォルダのパスを入れる
4.UWSCで以下のスクリプトを実行

注)指定したフォルダ内のすべてのファイルをアップロードしようとするので、アップロードし終わったファイルは削除してください

FC2ブログ一括アップロード.txt


↑拡張子を.UWSに変更して使用してください

↓中身



// *****************
// 基本設定
// *****************
PUBLIC USERID = "user"
PUBLIC PASSWORD = "pass"
PUBLIC SRC_DIR = "D:\Temp\updir" //アップロードフォルダ

// *****************
// 設定内容の確認
// *****************
ifb SRC_DIR = "" then
msgbox("アップロード対象フォルダが設定されていません")
exit
endif

try
// ファイルの取得
filecount = GetDir(SRC_DIR)
// アップロードするファイルがない場合終了
ifb filecount = 0 then
msgbox("アップロード対象ファイルが見つかりません。<#cr>" + SRC_DIR)
exit
endif
except
// 例外が発生したら終了
msgbox("エラー:" + TRY_ERRMSG)
exit
endtry


PUBLIC IE = CreateOLEObj("InternetExplorer.Application")
PUBLIC ID = HNDTOID(ie.hwnd)

// *****************
// メイン処理
// *****************
IE.Visible = true;
// FC2ブログhpを開く
IE.Navigate("http://blog.fc2.com/");

REPEAT
SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4

// ログインフォームが存在する場合
ifb IE.document.forms["login"] > 0 then
frm = IE.document.forms["login"]
IE.document.getElementById("acid").value = USERID
IE.document.getElementById("passwd").value = PASSWORD
frm.submit()
else
IE.Navigate("http://blog.fc2.com/?admin")
endif

REPEAT
SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4


ifb pos("fc2.com/control.php", IE.LocationURL) = 0 then
// ログインできなかったら終了
msgbox("ログインできませんでした。")
exit
endif

// アップロード画面を開く
tmp = Copy(IE.LocationURL, 1, POS("control.php", IE.LocationURL) + Length("control.php") - 1)
IE.Navigate(tmp + "?mode=control&process=upload")

REPEAT
SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4


// ファイル数分アップロード
for i = 0 to filecount - 1
// フォーム取得
frm = IE.document.forms["upload"]
// ファイルパス
filepath = SRC_DIR + "\" + GETDIR_FILES[i]

// 最小化してるとファイル名が入らないので戻す
if STATUS(ID, ST_ICON) then CTRLWIN(ID, NORMAL)

ifb GetIEVersion() = 6 then
// ファイル入力ボックスにフォーカスを当てる
frm.upfile.focus()
// sendstrで入力
sendstr(ID, filepath)
endif

ifb GetIEVersion() = 7 then
KBD(VK_CTRL, DOWN)
IESETDATA(IE, filepath, "upfile")
KBD(VK_CTRL, UP)
endif

inputs = frm.getElementsByTagName("input")
// type=submitを探す
for j = 0 to inputs.length - 1
ifb inputs.item(j).type = "submit" then
// 見つかったらクリックしてアップロード
inputs.item(j).click
break
endif
next

REPEAT
SLEEP(1)
UNTIL !IE.busy AND IE.readystate=4
next

msgbox("完了")

FUNCTION GetIEVersion()
FS = CreateOLEObj("Scripting.FileSystemObject")

// GetFileVersionでIEのバージョンを取得。
//IE.FullNameはiexplore.exeのフルパス
strVersion = FS.GetFileVersion(IE.FullName)

// 6.0.2900...って感じの文字なので、"."より前の肝心な部分だけ数値として取り出す
intVersion = Val(Copy(strVersion, 1, Pos(".", strVersion) - 1))

RESULT = intVersion
FEND


とりあえず動くので、コメントやメッセージは日本語のままです。
修正箇所はIELINK(日本語)->IE.Navigate(URL)に変えたーとか
フォームの取得方法をgetElementsByName->document.forms[]に変えたくらい。

それにしても英語OSで英語版のfc2blogトップページからログインしても、日本語版のblog管理画面になるんだな。
もし英語版の管理画面になるんだとしたら、URLとかの修正が必要になってくるかも。



追加修正
IE7で正しく動かなかったので、IE7でも動くように修正しました。

修正内容はアップロードファイルのパスを入れる動作を修正。
↓これを

// ファイル入力ボックスにフォーカスを当てる
frm.upfile.focus()
// sendstrで入力
sendstr(ID, filepath)


↓これに変えた

KBD(VK_CTRL, DOWN)
IESETDATA(IE, filepath, "upfile")
KBD(VK_CTRL, UP)

元々このtype=fileのボックスにファイルパスを入れる動作は気になっていたところでした。
後者のIESETDATAを使うとクリップボードにファイルパスが入ってしまうのがどうも気になってしまって、
他の方法を探して前者のsendstrで無理やり入れてました。
やっぱIESETDATAで入れたほうが安全だな。


 |  16:00  |  UWSC  |  トラックバック(0)  |  コメント(9)  |  Top↑

Comment

●ありがとうございます!!

英語環境対応版、ありがとうございます。
まだ、使っていないのですが、お礼を言いたくて。

使ってみて、またコメント残します。
Vine |  2008.09.27(土) 00:43 |  URL |  【コメント編集】

こちらこそネタを提供していただき(?)ありがとうございます。
こちらの環境では無事に動いたので、Vineさんの環境でも無事に動くといいな。
上野メモ |  2008.09.27(土) 01:36 |  URL |  【コメント編集】

●アップロードできませんでした。

>>結果報告<<
アップロードのページまで、スイスイっと行ってくれて、ローカルフォルダに入っているファイルの数、ページが切り替わって、完了のメッセージが出たのでオオッッと喜んだのですが、ファイルはアップロードできていませんでした。
「アップロードするファイルを指定してください」って、メッセージが出ます。
なにが原因でしょうか?

FC2は上野メモさんが書いている通り、トップページが英語で開いて、ログインで日本語のページに切り替わります。
IE7を、日本語を一番の言語に変えて、FC2のトップページが日本語で開くようにしても、同じでした。

この方法でアップロードできると、使いやすいし簡単で、いいですよね。
またまた、お手数をおかけしますが、よろしくお願いします。
Vine |  2008.09.29(月) 07:25 |  URL |  【コメント編集】

報告ありがとうございます!とても助かります。
IE7でしたか!こちらではIE6でテストしていました。
IE7にして動かしたところ、報告していただいた通りファイル名が入らずアップロード処理を行う状況が再現できました。

修正してIE7でも動くようになりましたので、この記事のソースコードも修正しました。
詳しくは記事内に追記しました。
今度こそ大丈夫だと思います!多分!
上野メモ |  2008.09.29(月) 18:29 |  URL |  【コメント編集】

●アップロード完了!!

動きました!!
すごいですよ、写真25枚、あっという間にアップロード完了、簡単で楽チン、そして早くて、今までの面倒な手作業から開放されて、感謝感激です。

本当にありがとうございました。

後日、TBさせていただいてよろしいでしょうか?
(公開しているブログは放置状態で、手入れが必要なので・・・。)

取り急ぎ、お礼と報告を。
Vine |  2008.09.30(火) 01:15 |  URL |  【コメント編集】

無事に動いて良かったです^^
こちらこそご協力ありがとうございました!
最近UWSCは動かすばっかで書いてなかったので、
久しぶりにコードを書いて、やっぱりUWSCは便利なものだと再認識しました。
TBも全然OKですよ!その辺もう自由です。

さすがにこのコードじゃVistaでは動かなかったけど(自分のパソコンがVista)、
後回しにしてたVista対応もこの勢いでできそうです!
上野メモ |  2008.09.30(火) 01:31 |  URL |  【コメント編集】

ふぅた@ぽっぽさんコメントありがとうございます。
お役に立ててよかったです^^

>※一回だけFC2のアップロードファイル名欄に「v」とだけ入力されてErrorで弾かれました。
これ自分で使ってるときもよくなるので気になってました。
UWSCでは、「IESETDATA」でアップロードファイル名を入力する際、
Ctrl+Vを使用してクリップボードから入力してるので、タイミングによっては「v」が入っちゃうんですよね。

これについては良い解決方法が見つからないので、我慢して使ってます・・・
上野メモ |  2008.11.17(月) 18:02 |  URL |  【コメント編集】

●また問題発生か?!

上野メモさん、便利で、ありがたく使用させていただいたのですが、ここに着て新たに問題発生かと思われますので、報告に伺いました。
FC2のファイルアップロードのページ、複数ファイルの一括アップロードができるようになり、デザインが変わりましたよね。
そうしたら、UWSCでアップできなくなってしまいました。ファイル名のところに入力できずにファイルはアップされず、でもページは以前同様に切り替わって行って、完了になります。

FC2の複数アップ、やはり面倒なので、UWSCを使って生きたいと考えているのですが・・・。

お忙しいところお手数をおかけしますが、検証のほど、宜しくお願いいたします。

報告が遅くなりましたが、わたしのブログのトップに出るインフォメーションの欄に、UWSCのリンクをさせていただきました。

海老、かわいいですねぇ。
Vine |  2009.03.25(水) 23:19 |  URL |  【コメント編集】

Vineさん報告ありがとうございます。
おかげで複数ファイルアップロードが出来るようになってることに気づきました。
対応版をアップロードしたので試しに使ってみてください。
http://uenomemo.blog31.fc2.com/blog-entry-326.html

ブログにリンクしていただき、ありがとうございます。
こちらもVineさんのブログをリンクに追加しました。

犬5匹とはすごいですね!にぎやかで楽しそう・・・
上野メモ |  2009.03.26(木) 04:12 |  URL |  【コメント編集】

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。