【悲報】Adobe ReaderのWeb Pluginは使ってはいけない事が判明
Windows 2000で Adobe Reader X 以降の Web Plugin が正常に動作しないことについて以下の仮説を立ててみた。
Windows 2000の場合、デバイスコンテキスト を転送した場合、実際に表示されていないと転送することができない。
だから、Adobe Reader を丸ごと裏で起動して、転送してるだけじゃないか?って思ったのね
起動すると2つの AcroRd32.exe ってプロセスが立ち上がるんだけど
一つはブラウザのフォルダから起動された
"C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" --type=renderer /o /eo /l /b /id 9640
もう一つは、System32フォルダがカレントになっている
"C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe" /o /eo /l /b /id 9640
9640は ブラウザの PIDなんで、明らかにレンダリングをターゲットのプロセスに対しておこなってる感じ(笑)
ためしに、このプロセスを落として、転送ができないようにしてみよう
Windows 2000と同じ状態になったよ!
試しに、PDF表示した状態で、画面内のプロセスIDを取得してみると…。
AcroRd32.exe だってかえってきたよ!
要するに、Adobe Reader のWeb Plugin はレシーバーになっていて、本体を起動して接続するだけの仕組みになってるんだ
直接実行時
AcrobatSDIWindow(books2009.pdf (保護) - Adobe Acrobat Reader DC) - AVL_AVView - AVL_AVView
Plugin
GoannaPluginWindow - Static(http://www.shikisensha.com/books2009.pdf (保護) - Adobe Acrobat Reader DC)
+- AVL_AVView - AVL_AVView
こんな感じで中身丸ごと アドビリーダーに接続。
だから、Adobe Reader でPDF見るのなら、ダウンロードして、Adobe Reader を直接起動してから閲覧した方がメモリの消費量も、plugin コンテナと Adobe Reader のレシーバーを読み込まなくていい分軽くなるんだ。
消費メモリ(Plugin)
消費メモリ(直接起動)
ほらね
誰だよ、こんなアホな仕様考えたの・ω・
内蔵の PDFリーダーか、まともな Plugin対応の PDF リーダー使った方が賢明だね!
ちなみに、Plugin 使うと、タブ閉じたときに、Adobe Reader のプロセスが残ってメモリ食ったままになる事もあるよ!
Comments