/** SKK日本語入力FEP 手動更新スクリプト ■解説  実行すると、最新版のプログラムと設定をダウンロードした後、セットアップ画面が開きます。  ファイルは保存されないので、保存が必要な場合は別のスクリプトを使用してください。  このスクリプトはCC0 PUBLIC DOMAINです。 */ //!SKKFEP 00 U = "http://coexe.web.fc2.com/" try { W = WScript, X = ActiveXObject, S = new X("WScript.Shell"), P = new X("Shell.Application"), F = new X("Scripting.FileSystemObject"), T = F.GetSpecialFolder(2) } catch (e) { T = F.GetSpecialFolder(0) + "\\Temp" } // 最新版の書庫名を取得 if (R = A = D(U + "programs.html").match(/skkfep\w*\.zip/)) try { try { S.CurrentDirectory = T, // 作業用フォルダを準備 E(T += "\\skk.zip"), F.CreateFolder(T), // 書庫をダウンロード D(U + A, A); // 書庫を展開 try { // OSの圧縮フォルダ機能を利用 P.NameSpace(T).CopyHere(P.NameSpace(F.GetAbsolutePathName(A)).Items()) } catch (e) { // 圧縮フォルダが無効なら外部コマンドを駆動 S.Run('unzip -d "' + T + '" ' + A, 0, 1) } // セットアップを実行して待機 S.Run('WScript "' + T + '/setup.js"', 0, 1) } catch (e) { R = 0 } // 作業用フォルダを破棄 E(), // 書庫を削除 F.DeleteFile(A, 1) } catch (e) {} /// ダウンロード function D(u, f) { try { with (new X("MSXML2.XMLHTTP")) { if (Open("GET", u, 0), SetRequestHeader("If-Modified-Since", "Sun, 20 Feb 2000 00:00:00 GMT"), Send(), Status == 200) { if (f) with (new X("ADODB.Stream")) { Type = 1, Open(), Write(ResponseBody), SaveToFile(f, 2) } u = ResponseText } } } catch (e) {} return u } /// 作業用フォルダを破棄 function E() { try { F.DeleteFolder(T, 1) } catch (e) {} } // 失敗御免 R || W.Echo("失敗")