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とかを使えばいいんでしょうけど、何回か挑戦して理解できませんでした。多分誰かに教えてもらわないとできないです。そのため当面このままです。ご了承ください。