2016年09月06日に再upしたIndesign用バージョンチェックのイベントリスナースクリプト「IDverCheckerPlus.jsx」ですが、最新CC2019(※2019/4/22時点)でバージョンチェックが上手くいかず、CS6のドキュメントを開いてみても素通りされていました(正常なら下記のようなアラートが出現)。
CC2019にしてから何だかオカシイぞ!
やっとことことこ、自身のマシンにもIndesignをCC2019にバージョンアップしました。しかしながら明らかに古いCS6のドキュメントを開いてみても【素通り】?こいつぁ、上手く動いて無くない?ということでコード修正に踏み切りました。
バージョン追加しなきゃ
んで、ファイルを開いてみるとビックリ!CC2015で止まっとるやないか!
var AppVer=app.version//アプリのバージョン
var myCreator=app.activeDocument.metadataPreferences.creator;//ドキュメントのバージョン
...
case"8":AppVer="CS6";break;
case"9":AppVer="CC";break;
case"10":AppVer="CC 2014";break;
case"11":AppVer="CC 2015";break;
//ここから今回追加
case"12":AppVer="CC 2017";break;
case"13":AppVer="CC 2018";break;
case"14":AppVer="CC 2019";break;
っていうか、毎年バージョンアップしてるわけでもなく、11→12がCC2015→CC2017とかあるんで、ハッキリ言って【元号】よりたちが悪いシロモノになっております。サイアク!西暦と元号は仲良く年を重ねるから一度設定すれば完璧!なんですが、CC 20xxとメジャーバージョンの数が合わないんでバージョンアップごとの改変が必須!恐ろしや。っていうか、アプリのバージョン取得とドキュメントのバージョンの数字ア・ワ・セ・ロ・ヨ!
スポンサーリンク
ん?バージョンの返り値、仕様変更?
完璧!と思いながらテスト確認!しかし、またもやバージョン違いのメッセージ!何故だ何故なのだ!?デバッグしてみると、いつの間にかドキュメント作成バージョンの返り値、メジャーバージョンに合わせとるやないか!?
実行バージョン | アプリバージョン取得 | ドキュメントバージョン取得 |
---|---|---|
CS6 | 8.1.0.420 | Adobe InDesign CS6 (Windows) |
CC | メンドクサイので未調査 | |
CC2014 | メンドクサイので未調査 | |
CC2015 | メンドクサイので未調査 | |
CC2017 | 12.1.0.56 | Adobe InDesign CC 2017 (Windows) |
CC2018 | 13.1.076 | Adobe InDesign CC 13.1 (Windows) |
CC2019 | 14.0.0.130 | Adobe InDesign CC 14.0 (Windows) |
このままの仕様なら、CC2019以降改変しなくてもイイカモ!しかしながら、【CC 14】て何よ?しかも結局旧バージョンはCC20xxで返すので混在しています。それにメジャーバージョン表記なので分かりにくい…。
思い切ってバージョン情報をXML化!ソケット通信?
思い切ってバージョン情報をXML化してそこから引き出すことにしました。
<version CCCS="CS4" major="6">CS4</version>
<version CCCS="CS5" major="7">CS5</version>
<version CCCS="CS5.5" major="7.5">CS5.5</version>
<version CCCS="CS6" major="8">CS6</version>
<version CCCS="CC" major="9">CC</version>
<version CCCS="CC2014" major="10">CC2014</version>
<version CCCS="CC2015" major="11">CC2015</version>
<version CCCS="CC2016" major="12">CC2017</version>
<version CCCS="CC2018" major="13">CC2018</version>
<version CCCS="CC2019" major="14">CC2019</version>
そしてサイトにxmlをアップしてjsxのソケット通信で読み込むという夢のようなシステム構築!
結局XMLもjsxに埋め込み…
//ソケット通信のサンプルコード
socGet()
function socGet(){
var reply = "";
var conn = new Socket;
if (conn.open ("www.adodtp.com:80")) {
conn.write ("GET /jsx/idVersion.xml HTTP/1.0\n\n");
reply = conn.read();
conn.close();
}
return reply
}
と思いトライしましたが、、、、ナント【SSL(セキュア→https)】のサイトは非対応!夢の計画はもろくも崩れ去りました!(SSL化したばっかりやのに…)
結局jsxに地道にXMLデータ埋め込みました。ほんでドキュメントバージョンとアプリバージョンをXMLでゲットして比較!
これで、完璧超人か?う~ん良いものができた。しかし、結局メジャーアップデートごとに改変しなければならずメンドイ…。
再ダウンロードは「あどびのすくりぷと」ページ
もしダウンロードされてる方がいれば、修正された「IDverChecker2019.jsx」を下記リンクからダウンロードして下さい(対応バージョンはCS4~CC2019までです)。
→web site:shock tm 「あどびのすくりぷと」ページ
便利だと思う度 ★★★★★
CC以降バージョン気にしない人 ★☆☆☆☆
スポンサーリンク
More from my site
スポンサーリンク