InDesign 17.0(2022)に対応したopen_the_inddを公開しました

InDesign 17.0(2022)に対応しopen_the_inddバージョ0.4.0を公開しました。使い方等はディInDesignの説明ページにあります。 今回からダウンロードすzipファイルに解凍パスワードを付けました。なぜかというと、CCライブラリにアップロードするときに次のメッセージが出るからです。 昨年まで出なかったんですけど(分かりやすいよう圧縮前のファイルでテストしました)。 どうやCCライブラリに出来の悪いウィルスチェック機能が付いたようで、ウィルスと誤認します。zipファイルの中身も見ているので、zip圧縮しても同じこと。ただし、パスワード付zipファイルだと中身を確認できないのでアップロードできてしまうという、本当に出来の悪いウィルスチェック機能です。 ですからひと手間かかりますが、解凍の際はパスワード「open_the_indd」を入力してください。 バージョ17.0対応のほかに、1つのバグを修正しました。 実は某所からもらっinddファイルのファイルサイズが0バイトでして、それに気づかず開こうとしたらエラーになってしまいました。うん、ファイルサイズのチェックは付けてなかった。苦情が来なかったのは、皆さん正しい使い方をしているんですね。 ですからこのバージョンからはファイルサイズチェックを行っています。
本当にウィルスが含まれていないの? と思われる方もいらっしゃると思いますので、改めて作り方と挙動を説明しておきます。 このプログラムは元々VBScriptで書いています。コードの内容は次の通りです。

関連付けの変更

以下のレジストリキーを探して、起動するアプリケーションopen_the_inddに変更しています。
HKCR\InDesign.Asset Library\Shell\Open\Command
HKCR\InDesign.Book\Shell\Open\Command
HKCR\InDesign.Document\Shell\Open\Command
HKCR\InDesign.Template\Shell\Open\Command
HKCR\InDesign.Asset Library.2019\Shell\Open\Command
HKCR\InDesign.Book.2019\Shell\Open\Command
HKCR\InDesign.Document.2019\Shell\Open\Command
HKCR\InDesign.Template.2019\Shell\Open\Command

InDesignファイルのバージョン取得

InDesignのファイルの先頭から40バイトを読み込みます。

InDesignアプリケーションの取得

以下のレジストリキーを探して、そこから辿っInDesignアプリケーションのフルパスを取得しています。
HKCR\InDesign.Application.2\CLSID
HKCR\InDesign.Application.CS\CLSID
HKCR\InDesign.Application.CS2_J\CLSID
HKCR\InDesign.Application.CS3_J\CLSID
HKCR\InDesign.Application.CS4_J\CLSID
HKCR\InDesign.Application.CS5_J\CLSID
HKCR\InDesign.Application.CS6_J\CLSID
HKCR\InDesign.Application.CC_J\CLSID
HKCR\InDesign.Application.CC.2014_J\CLSID
HKCR\InDesign.Application.CC.2015_J\CLSID
HKCR\InDesign.Application.CC.2017_J\CLSID
HKCR\InDesign.Application.CC.2018\CLSID
HKCR\InDesign.Application.CC.2019\CLSID
HKCR\InDesign.Application.2020\CLSID
HKCR\InDesign.Application.2021\CLSID
HKCR\InDesign.Application.2022\CLSID

InDesignの起動

ファイルバージョンと同じバージョンのアプリケーション、もしくは最も近い上位のアプリケーションを起動します。   コードの内容は以上なのですが、Windowsの拡張子の関連付けVBScriptファイルにすることはできません。必ず拡張子exeの実行ファイルでなければなりません。そこで、VBScriptファイルexeファイルに変換する必要があるわけですが、このときに「nandemoExe」というプログラムを使用しています。このプログラムは古いですが、今でもベクターに掲載されていますので全く問題ありません。 ただ、このプログラムの挙動がウィルスの挙動に近いらしいので、そこで誤認されているようです。 このプログラムで作った実行ファイルは、実は自己解凍ファイルになります。実行するとユーザー一時フォルダに元々のファイル(私の場合VBScript)を展開します(つまり、このときにユーザー一時フォルダを覗けば私の書いたコードが丸見えという状態です)。そして展開されたファイルを実行しているので、トロイの木馬かそれに近い挙動に映るんでしょう。 Visual Studioとかを使えばいいんでしょうけど、何回か挑戦して理解できませんでした。多分誰かに教えてもらわないとできないです。そのため当面このままです。ご了承ください。