ThinApp で仮想化した SimpleBrowser の起動が Windows8 だけ遅い問題について (COM OutProcess Serverの制御)
ThinAppで仮想化したSimpleBrowser (※1) の起動が、何故かWindows8 だけ遅い問題が発生しました。
空白ページを表示するのに約10秒かかります。
Windows7 等の他のOSでは、まったく問題なく、2秒もかからず表示されます。
(※1)
SimpleBrowserの入手先(フリーソフト)
http://nilbrowser.ifdef.jp/
原因:
Windows8 では、IEコンポーネントを利用したプログラムの実行時に
Shell関連の整合性チェック用のEXEが起動するからです。
そのチェック用のRundll32.EXEが終了するまで、本体であるSimpleBrowserの起動が
ブロックされ、全体で約10秒前後、起動に時間が掛かるようになっています。
Rundll32.exeが起動
起動コマンドラインは、以下になります。
C:\Windows\System32\rundll32.exe shell32.dll,SHCreateLocalServerRunDll {9BA05972-F6A8-11CF-A442-00A0C90A8F39} –Embedding
余談:
COMのOutProcess Serverの実行をVOSで、制御する方法を学ぶ事が重要だったりします。
ThinAppにおける、OutProcess Serverの制御方法が4パターンある事を伝えたいと思い
投稿してみました。
今回の表面上の問題は、起動遅延でしたがそれ以外にも、COM Outprocess Serverで
弊害が発生することがあるので、そんな時は、以下の対処を頭の片隅にでも入れておいてください。