モンスターカレンダー

« 2011年4月 »
123456789101112131415161718192021222324252627282930

FC2ブログに自動ログインして投稿するスクリプト

| Windows
このエントリーをはてなブックマークに追加

Internet Explorer やMS-Officeはオートメーションという機能を使って、外部プログラムから操作ができるのをご存じでしょうか?
プログラムは得意ではありませんが、サンプルとしてFC2ブログに自動ログインして投稿するVBScriptを紹介します。




'+++++++++++++++++++++++++++++++++++++
' FC2ブログの自動投稿
' Author kibanteam 2011/4/13
'
' 64bit版OSではWow64を使用(スクリプトパスは変更)
' C:\Windows\SysWow64\wscript.exe E:\Data\auto_login_script_fc2.vbs
' C:\Windows\SysWow64\cscript.exe E:\Data\auto_login_script_fc2.vbs
'
' 注意事項!
' ①記事の自動保存はOFFにする事
' ②エントリーの状態は公開にする事
'
'+++++++++++++++++++++++++++++++++++++


'+++++++++++++++++++++++++++++++++++++
' 定数(ID/PASS/URL)
'+++++++++++++++++++++++++++++++++++++
Const USER_ID = "" ' FC2ブログのユーザーID(要変更)
Const PASSWORD = "" ' FC2ブログのパスワード(要変更)
Const LOGIN_URL = "http://fc2.com/login.php?ref=blog" ' FC2ブログのログインURL
Const WRITE_URL = "" ' FC2ブログの記事投稿URL(要変更)


'+++++++++++++++++++++++++++++++++++++
' 変数
'+++++++++++++++++++++++++++++++++++++
Public objIE
Public title
Public body


'+++++++++++++++++++++++++++++++++++++
' 処理部
'+++++++++++++++++++++++++++++++++++++
Call Init()
Call Main()
Call Term()


'+++++++++++++++++++++++++++++++++++++
' 事前処理(FC2ログイン)
'+++++++++++++++++++++++++++++++++++++
Sub Init()
On Error Resume Next

'IEオブジェクト生成
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True ' 非表示でIEを操作する場合は、「False」に変更
objIE.Navigate LOGIN_URL
Call WaitIE()

'ユーザーID・パスワードをセット>>ログイン
objIE.document.form_login.id.value = USER_ID
objIE.document.form_login.pass.value = PASSWORD
objIE.document.form_login.submit
Call WaitIE()

'エラー発生>>終了
If Err Then
Call Term()
End If
End Sub

'+++++++++++++++++++++++++++++++++++++
' 事後処理(オブジェクト開放)
'+++++++++++++++++++++++++++++++++++++
Sub Term()
objIE.Quit
Set objIE = Nothing
WScript.Quit
End Sub

'+++++++++++++++++++++++++++++++++++++
' メイン処理(記事投稿)
'+++++++++++++++++++++++++++++++++++++
Sub Main()
On Error Resume Next

'記事ページに移動
objIE.Navigate WRITE_URL
Call WaitIE()

'データ取得
getData()

'記事投稿
objIE.document.all.entry_title.value = title
objIE.document.all.body.value = body
Call WaitIE()
objIE.document.entry.submit
Call WaitIE()

'エラー発生>>終了
If Err Then
Call Term()
End If
End sub

'+++++++++++++++++++++++++++++++++++++
' ページロード終了を待機(最大60秒)
'+++++++++++++++++++++++++++++++++++++
Private Sub WaitIE()
Dim i
i = 0
Do While objIE.Busy
WScript.Sleep(1000)
i = i + 1
If i = 30 Then Term()
Loop
Dim j
j = 0
Do While objIE.Document.readyState<>"complete"
WScript.Sleep(1000)
j = j + 1
If j = 30 Then Term()
Loop
End Sub

'+++++++++++++++++++++++++++++++++++++
' ブログに投稿する内容をセット
'+++++++++++++++++++++++++++++++++++++
Private Function getData()
On Error Resume Next

'記事タイトル
title = "サンプルタイトル"

'記事本文
body = "サンプル記事"

'エラー発生>>終了
If Err Then
Call Term()
End If
End Function


まず上のサンプルVBSの定数部分を自分のFC2ブログの設定に変更し、拡張子を「VBS」で保存します。
ここでは、「auto_login_script_fc2.vbs」というファイル名でE:\Dataフォルダに保管した前提とします。

次にWindowsスタートボタンをクリックします。
「プログラムとファイルの検索」に、cmdと入力してEnter >> コマンド入力画面が起動します。
WIndowsのバージョンによっては、「プログラムとファイルの検索」が「ファイル名を指定して実行」だったりします。

32bit版OSの場合は
cscript auto_login_script_fc2.vbs

64bit版OSの場合は
C:\Windows\SysWow64\cscript.exe E:\Data\auto_login_script_fc2.vbs

と入力してEnterを押します。
結果表示です。


Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\Users\ユーザー名>C:\Windows\SysWow64\cscript.exe E:\Data\auto_login_script_fc2.vbs

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.


C:\Users\ユーザー名>


WSHというNT系Windowsが標準で持っている機能です。
色々と使えそうではありませんか?

一応、VBS形式のものを置いておきますので、興味のある方はいじってみて下さい。
サンプルの改変は全く問題ありませんが、再配布は厳禁でお願いします。

※サンプルに間違いがあって気付かれた方がいれば、記事を修正しますのでご連絡下さい。



この記事がお役に立てましたら応援をお願いします^^
このエントリーをはてなブックマークに追加

関連記事

  1. WIndwsXPのサポート終了が近づいているが・・
  2. ローカルAdministratorsからグループ・ユーザーを削除するVBScript
  3. ローカルAdministratorsにグループを追加作成するVBScript
  4. ActiveDirectoryのユーザー情報を取得するVBScript
  5. IE9インストール後の不具合
  6. 共有フォルダへのアクセスを確認する方法
  7. Excel2007の表からHTMLテーブルタグを簡単生成する方法
  8. EXCELでメール送信
  9. IE9の速度を計測してみた
  10. IE9をインストールしてみた
  11. LAN内のWindowsPCのフォルダ・ファイルを操作する
  12. Windowsコマンドをテキストにリダイレクト
  13. WinsowsでDNSサーバーのIPアドレスを調べるコマンド
  14. Windowsでホストまでのルートを調べるコマンド
  15. WindowsでIPアドレス・ホスト名を取得するコマンド

コメントする






MT42BlogBetaInner

ブログ管理人:Tama


管理人のTamaです

メールフォーム
メールフォーム

おきてがみ


トップページーリンク

おすすめレンタルサーバー

★初期費用半額+最大2ケ月無料キャンペーン中!
おすすめレンタルサーバー! ミニバード

おすすめテンプレート

★MT・WP用SEOテンプレート!
クールでかっこいいMT&WordPressテーマ

ブログパーツ

MovableType(MT)テンプレート 無料(フリー)