はてな界ではプラグインといえばグリモン、スクリプト書くっていったらグリモン・・・とグリモンだらけですが(←偏見)、何も拡張すべきものはブラウザだけじゃぁないぞ。
・・・というわけで表題のようなものを探してきました。




これはなに?

メッセンジャープラスについている機能で、MSN Messengerに関連したスクリプトが書けます!
名前欄を変えたり、誰かがサインインしたっていうイベントを取得したり、チャットウィンドウの制御まで一通りのことはできるよ。



良い点

  • ドキュメントが(英語の割には)すっきりしてて分かりやすかった!(主観だけど何気に重要)
  • メッセンジャーってブラウザ並に重宝してるソフトって人も多いんじゃないかな><だから使いこなせれば凄く便利かもね。あと作ったものを友達に披露しやすいかも!


悪い点

  • C言語VBも使えてActiveXも使えるから、ホイホイ気軽に導入しまくるのは良くないかもね。
  • 勿論動くのはWindowsXP以上のみ!



動かしてみる

かんきょーこーちく
まずMessenger Plus! Liveが入っていない場合はインストールしましょう。
ここにあるよ↓
http://www.msgpluslive.jp/download/

ちなみによく一緒に「広告プログラム」もインストールしちゃう人がいるから、気をつけてね。「次へ」を連打しまくらないように!
あ、、、勿論メッセンジャーも必須だよ。

ちゃんとインストールが終わったら、メニューバーに「Plus!」の文字があるよ!

これで構築は終わり!



ドキュメントを揃えよう

ココにあるよ。
http://www.msgpluslive.jp/scripts/view/13-Official-Scripting-Documentation/


実際に書いてみる

メッセンジャーのメニューバーからPlus!→設定メニュー→一般的な設定(タブ)→スクリプト(タブ)→新規作成

これで、スクリプトが書けるよ!

とりあえずHello World!

function OnEvent_Initialize(MessengerStart)
{
Debug.Trace("Hello World!");
}

保存すると自動的にスクリプトを読み込みなおしてくれるよ。

さっきのスクリプト(タブ)の「デバックオプションを有効にする」をチェックしておこう。

そうすると、メニューバー→Plus!→スクリプトデバッグ情報の表示 で、Hello World!が表示されてるよ。



サンプルプログラム


ニワニュースリーダー

ニコニコ動画の動画の上に流れてるニュースを15秒おきに自分のパーソナルメッセージに表示させることができるよ!

function OnEvent_Initialize(MessengerStart)
{
loadNiwaNews();
MsgPlus.AddTimer("niwa",15000);
}

function OnEvent_Uninitialize(MessengerExit)
{
MsgPlus.CancelTimer("niwa");
}

function OnEvent_Timer(TimerId) {
if( TimerId == "niwa") {
loadNiwaNews();
MsgPlus.AddTimer("niwa",15000);
}
}


function loadNiwaNews(){
httpObj = new ActiveXObject("Microsoft.XMLHTTP");
httpObj.onreadystatechange = statusCheck;
httpObj.open("GET","http://www.nicovideo.jp/api/getmarquee?mqver=0",true);
httpObj.send(null);
}
function statusCheck(){
if ( (httpObj.readyState == 4) && (httpObj.status == 200) ){
displayData();
}
}
function displayData(){
var xmlSrc = httpObj.responseXML;
var elements = xmlSrc.getElementsByTagName("text");
var link = xmlSrc.getElementsByTagName("link");
var elementLen = elements.length; // 全体数
var idx = Math.floor( Math.random() * elementLen );
Messenger.MyPersonalMessage = elements[idx].childNodes[0].nodeValue
+" - " + link[idx].childNodes[0].nodeValue;
}


====簡単な解説====
Ajaxニワニュースxmlファイルにアクセスして、その中からランダムで記事を選んでパーソナルメッセージに表示させるメソッドがdisplayData()。
それをタイマーで15000ミリ秒おきに呼び出してるよ。
使ってみるとこんな感じ↓




まとめ

  • JavaScriptわかってれば結構すらすら書けそう。
  • JavaScript少ししか分からなくても他の言語分かれば、なんとかなっちゃう。
  • dll形式でC言語も使えるらしいからさらに応用性は拡大!(未確認)
  • バグがあって暴走しちゃうとメッセンジャーに登録してる人に迷惑かけちゃうから気をつけてね。