Adobe Readerとの格闘 その1
たまにはWindowsのネタも書いてみようw
とあるシステムでPDFをプログラムの画面内に表示する要件があった。
データベース内のデータとPDFのドキュメントを関連付けて画面上に表示するというもので元々存在しているシステムのアドイン的な位置付け。
構成は以下の通り。
- OS:Windows XP Professional (SP3), Windows 7 Business
- 開発言語:Visual Basic 6.0 (SP6)
- PDF表示に使用するコンポーネントはAdobe Reader 9
- その他:Oracle 9iR2, Oracle 11gR2...
- プログラムはActiveX dllとして作成
で、一般的にはActiveXコントロールとして画面に貼り付けることを考える訳だけども、色々と問題があったが致命的だったのが以下の二つ。
- Adobe Readerがアクティブな状態でTABキーを押下するとアプリケーションエラー
- プログラムを終了するときにアプリケーションエラーが発生する
前者は作業時点においては解決策がなく、画面に貼り付けたAdobe Readerを触らせないという方法しかなかった。
(現在はAdobe Reader 9.4により解消)
また、後者についてはGoogle先生に聞いたら答えが載っていたもののやってみても回避できなかった。
# MSDNのフォーラムにC#を使用している場合で解決したというスレッドが。
一旦元に戻し、ミニマム構成で試すと単独のEXEの場合は発生せず、ActiveX dllにしたものを使用すると発生していたので試しにActiveX EXEにしてみると発生しなかった。
ところが、Windows7で動かすと画面の表示すらできない状態にorz
# メモリが足りないと言われる
# アドイン未使用時のダミープログラムでは発生しないのでActiveX EXEだからダメという訳でも...
またフリダシか...