Skip to content

Ver 1.7.3.1 - CreateObject とサヨナラ

Choose a tag to compare

@Eschamali Eschamali released this 13 Apr 14:29

本バージョンは、CDP制御のコアモジュールにおける実行速度の最適化と、外部コンポーネントへの依存度を低下させるための内部リファクタリングを主な目的としたマイナーアップデートです。

⚡️ [Performance] CDP関連クラスからの CreateObject 排除

VBAにおいてオーバーヘッド(生成コスト)の大きい CreateObject による外部アプリケーションの呼び出しを、よりOSネイティブで高速なアプローチへ全面的に置き換えました。

  • レジストリ読み込みの高速化:
    これまで WScript.ShellRegRead メソッドを用いていたブラウザパスの自動探索処理を、WMI(Windows Management Instrumentation)の StdRegProv プロバイダへの直接接続(GetObject)へ変更しました。これにより、WSH(Windows Script Host)のプロセス生成コストを削減しています。
  • Base64エンコード/デコード処理のAPI化:
    MSXML2.DOMDocument オブジェクトを用いたBase64の変換処理を廃止し、Windows API の CryptStringToBinary / CryptBinaryToString へ完全移行しました。不要なXMLパーサーのロードを防ぎ、純粋なバイナリ処理による劇的な高速化を実現しています。

🧹 [Improvement] 標準出力/エラー出力ログの可視性向上

CDP通信における標準出力(stdout)およびエラー出力(stderr)で発生する複数行のログメッセージに対し、安全な区切り文字を導入しました。
従来は改行コード(vbCrLf)を一律で削除(空文字置換)していましたが、本バージョンより制御文字である レコードセパレータ(Chr(30) へ置換する仕様に変更しました。これにより、ログの連続性を保ちつつ、デバッグ時や外部ツールでのパース(解析)がより正確かつ容易になります。

🛠 [Update] Web制御全般:Crypt API パラメータの最新化

Windows API CryptStringToBinary および CryptBinaryToString の呼び出しに使用する dwFlags(フォーマット指定フラグ)の定義を最新の仕様に合わせ、Enum(列挙型)として追加・整理しました。これにより、より厳密で多様なエンコーディング方式に安全に対応可能となります。