JScriptではてなアンテナリダイレクト失敗を何とかする

このあいだのはてなアンテナは調子が悪かった!
アンテナの表示が遅いこともあったけど、
http://a.hatena.ne.jp/go?ほにゃらら
からまったくリダイレクトされないこともあったり!

ということで、

趣味のJScript
http://a.hatena.ne.jp/go?ほにゃらら
のリダイレクトに失敗したブラウザ上のアドレスを強引に
ほにゃらら
にしてしまおう!おう!

//void delayedSendKeys(キーストロークの配列)
//アクティブなウィンドウにキーストロークを送信する
//
//配列の1要素をキーストローク送信するごとに、時間を空ける。
//キーストロークのアプリケーションでの処理を確実に行うようにする措置。
var delayedSendKeys = function(astrKeys) {
  var oSh = new ActiveXObject("WScript.Shell");
  var l = astrKeys.length;
  for (var i = 0; i < l; i++) {
     oSh.SendKeys(astrKeys[i]);
     WScript.Sleep(100);
  }
  return;
}

//String getClipString(void)
//クリップボードのテキストを文字列で返す。
//
//InternetExplorerアプリを生成するやり方は嫌だったので、
//メモ帳に張り付けて一時ファイル保存し読み込んでいる。
//IEでクリップボードを操作することに気持ち悪さを感じる。
//パスワードをコピーした状態で悪意のサイトを開いたらパスワード送信されてしまうがな。
//だからIEは使わないでみた(意味不明)。かなりぱたぱたうごく。
var getClipString = function() {
  var oSh = new ActiveXObject("WScript.Shell");
  var oFS = new ActiveXObject("Scripting.FileSystemObject");
  var strTemp = oFS.GetDriveName(oFS.GetSpecialFolder(2)) + "\\" + oFS.GetTempName() + ".txt";
  oSh.Run("notepad.exe");
  while (oSh.AppActivate("無題")==false) {
   WScript.Sleep(100);
  }
  delayedSendKeys(["^v","%f","a","%n",strTemp,"{ENTER}","%f","x"]);
  while (oFS.FileExists(strTemp)!=true) {
    WScript.Sleep(100);
  }
  var oTS = oFS.OpenTextFile(strTemp);
  var strRet = oTS.ReadAll();
  oTS.close();
  while (oFS.FileExists(strTemp)!=true) {
    WScript.Sleep(100);
  }
  oFS.DeleteFile(strTemp);
  return strRet;
}

//void setClipString(String)
//クリップボードに文字列をセットする。
//
//上と同様、InternetExplorerアプリを生成するやり方でなく、
//一時ファイルに保存してメモ帳で開きコピーしている。
//これもぱたぱたうごく。
var setClipString = function(strArg) {
  var oSh = new ActiveXObject("WScript.Shell");
  var oFS = new ActiveXObject("Scripting.FileSystemObject");
  var strTempBase = oFS.GetTempName();
  var strTemp = oFS.GetDriveName(oFS.GetSpecialFolder(2)) + "\\" + strTempBase + ".txt";
  var oTS = oFS.CreateTextFile(strTemp);
  oTS.Write(strArg);
  oTS.close();
  while (oFS.FileExists(strTemp)!=true) {
    WScript.Sleep(100);
  }
  oSh.Run("notepad.exe "+ strTemp);
  while (oSh.AppActivate(strTempBase)==false) {
     WScript.Sleep(100);
  }
  delayedSendKeys(["^a","^c","%f","x"]);
  oFS.DeleteFile(strTemp);
  return;
}

//ここまで昨日と同じ

//はてなアンテナリダイレクトURL除去をしてみる

//String removeHatenaRedirect(String)
//引数:"http://a.hatena.ne.jp/go?http://d.hatena.ne.jp/xxxxx/p2" とかなんとか
//返値:"http://d.hatena.ne.jp/xxxxx"
var removeHatenaRedirect = function(strBefore) {
  var strAfter = strBefore.split("?")[1];
  var astrAfter = strAfter.split("/");
  astrAfter.pop();
  strAfter = astrAfter.join("/");
  return strAfter;
}

var oSh = new ActiveXObject("WScript.Shell");

//リダイレクト失敗したウィンドウをアクティベイト
oSh.AppActivate("http://a.hatena");
WScript.Sleep(100);

//URLをクリップボードにコピー
delayedSendKeys(["%d","^c"]);
WScript.Sleep(100);

//クリップボードから取り出す
var strBefore = getClipString();

//a.hatena.ne.jp/go?なんかを取り除く
strAfter = removeHatenaRedirect(strBefore);

//取り除いたURLをクリップボードにセット
setClipString(strAfter);

//もう一度ブラウザをアクティベイト
oSh.AppActivate("http://a.hatena");
WScript.Sleep(100);

//URLをクリップボードからペースト
delayedSendKeys(["%d","^v","{ENTER}"]);

やりたかったことはこのスクリプトの一部でしたが、クリップボードJScriptで直接扱えなかったので、
なんかいきり立ってしまいました!

結局

ただブラウザにキーストローク送ってるだけ。
しょうもないスクリプトのココロだー(小沢昭一風味)