/** SKK日本語入力FEP 手動更新スクリプト ■解説  実行すると、最新版のプログラムと設定をダウンロードした後、セットアップ画面が開きます。  ブラウザから直接実行した場合は、ZIP書庫は保存せずダウンロードと実行のみを行います。  一部のブラウザ(Edge)ではブラウザ側の制限により常にダウンロードフォルダに保存されます。  ZIP書庫を手元に残しておきたい場合は、このファイルを「名前をつけて保存」して実行してください。  書庫はこのファイルと同じ場所に保存されます。  このスクリプトはCC0 PUBLIC DOMAINです。 */ //!SKKFEP 00 U = "http://coexe.web.fc2.com/" W = WScript, X = ActiveXObject, S = new X("WScript.Shell"), P = new X("Shell.Application"), F = new X("Scripting.FileSystemObject") // ブラウザ経由での動作設定 (Firefox/IE/Edge対応) try { T = F.GetSpecialFolder(2) } catch (e) { T = F.GetSpecialFolder(0) + "\\Temp" } S.CurrentDirectory = (B = (N = W.ScriptFullName).indexOf(T) + N.indexOf(P.NameSpace(32).Self.Path) + 2) ? T : F.GetParentFolderName(N) // 最新版の書庫名を取得 if (R = A = D(U + "programs.html").match(/skkfep\w*\.zip/)) try { try { // 作業用フォルダを準備 E(T += "\\skkfep.zip"), F.CreateFolder(T), // 書庫をダウンロード !B && F.FileExists(A) || 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(), // ブラウザ経由時は書庫を削除 !B || F.DeleteFile(A, 1) } catch (e) {} // 失敗御免 R || W.Echo("失敗なのです") /// ダウンロード 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) {} }