SimpleBrowser でIE6 Webアプリの延命について(Windows7 で IE6 を延命!?)
SimpleBrowser でIE6 Webアプリの延命について、今回は書きたいと思います。( ThinApp との連携を中心に書きます。)
まずは、こちらのリンクから SimpleBrowser ver2.7.1.0をダウンロードして試してみてください。(フリーウェア)
http://nilbrowser.web.fc2.com/
英語のページはこちら
http://nilbrowser.web.fc2.com/indexen.htm
SimpleBrowser は、IE6に見た目が似たブラウザです。
Windows7 でも動作します。IEコンポーネントを利用しているので IE8 のレンダリングエンジンを利用しますが、IE8 が持っている互換モード(IE5/6 の互換レンダリング Quirks モード)を強制的に利用する機能があります。
※必ずreadme.txtを確認してください。
前提として、「 Windows7 で IE6 を動かしたい」というニーズは本当にたくさんあります。
MSから提供される新しいサービス、製品もサポートされるブラウザからIE6がことごとく、
外れています。
SharePoint 2010 では IE6 はサポートブラウザから外れました。
理由は様々ありますが、IE6 には将来がありません。というか IE9 もリリースされていますし
もう少しで IE10 もリリースされますのでIE自体は順調に進化しています。
IE6 は、レンダリングや CSS の解釈に癖が強く、多くの Web開発者 から煙たがられるのも事実です。
IE6 のためだけに、HTML や CSS、JS を用意するのは、本当に大変みたいです。
また、Javascript の実行速度も、最近のモダンブラウザに比べるのが申し訳ないくらい
遅いです。遅すぎます。
という訳で、私も新しい環境である Windows7 では、最新のブラウザ(IE8/9 やFirefox、Google Chrome等)を利用するのが最も良いと思いますし、生産性の面や堅牢性、セキュリティの観点からも
外部のサイトを利用するのには、もはやIE6はお役御免だと思っています。
しかしながら、IE6 を利用したいというニーズはとても多くあり、私が以前にPostした内容は
このBlogの中で一番人気です。(笑)
「 Windows7 で何故 IE6 を利用したいのか?」
http://tunemicky.blogspot.com/2011/11/windows7ie6.html
前置きが長くなりましたが、Webシステムを IE6 以外の選択肢でも
延命することが可能だったので、今回その中核を担った
SimpleBrowser を利用した具体的な内容について書きたいと思います。
※実際の話しをもとにしている風の創作的フィクションですので
ご注意ください。m(__)m
IE6をまったく利用していないので、IEのライセンス的な部分も考えなくてOKだと
個人的に思います。
SimpleBrowser.exeのファイル名をiexplore.exeに変更していますが。。。
初めに、どんな問題があったのか - その課題
対象のIE6 Webアプリの課題は以下でした。
・4.帳票を出力する際に、IE形式(htm)を指定したフォルダに出力する。
出力後にIE8が自動的に起動する問題(IE8のタブ型UIを使いたくない。。。)
この問題を解決するためのアプローチ(パッケージ戦略)
1.SimpleBrowserを仮想化し、初めに開くページを設定する(IEは仮想化しない)
2.ActiveXを仮想化する
3.Excel2007を仮想化する。
Excel形式の帳票出力では仮想化したExcel2007を起動する。
ネイティブ側からXLSファイルをダブルクリックした際に仮想Excel2007上で
XLSファイルが開くのを阻止する。
※ネイティブ側にインストールされているExcel2010で開く。
4.IE形式の帳票出力でIE8が起動してしまう問題を回避する。
この仮想化作業のポイント等
【利用環境】
Windows7 SP1 32Bit
Excel2010
【パッケージング環境】
クリーンな WindowsXP SP3
(Windows Updateが全て終わっている状態、最新の状態にしておく)
ThinApp4.7
【必要な物】
Office2007 のメディア(ボリュームライセンス版)
プロダクトキー
ActiveXのインストーラー一式
SimpleBrowser
【ポイント】
・クリーンな環境と Office2007 のCD-ROMを入れるタイミングに注意
・MS明朝 の文字化けを回避するために、MS明朝 「MSMINCHO.TTF」を%Fonts%から削除
・IE形式の帳票出力でIE8が起動してしまう問題への対処
SimpleBrowserの名前をiexplore.exeに変更してしまう。
プロジェクトフォルダを以下の状態にしてしまう。
%ProgramFilesDir%\Internet Explorer
にSimpleBrowser.exeを設置し、名前をiexplore.exeに変更する。
※htmファイルをShellExecute(VBだとRun)コマンドで開いているため
既定のhtmに関連付けされたアプリ(iexplore.exe)が起動します。
そこで、SimpleBrowserの名前を変えてしまう事で対処しています。
・初めに開くサイトを指定する。( http://hogehoge.com/login)
Package.iniのSimpleBrowserのセクションを以下のようにします。
CommandLineを追加する。
[SimpleBrowser.exe]
;Source=%ProgramFilesDir%\Internet Explorer\SimpleBrowser.exe
Source=%ProgramFilesDir%\Internet Explorer\iexplore.exe
CommandLine="%ProgramFilesDir%\Internet Explorer\iexplore.exe" http://hogehoge.com/login
・ネイティブ側からXLSファイルをダブルクリックした際に仮想Excel2007上で
XLSファイルが開くのを阻止する。
ネイティブ側にインストールされているExcel2010で開く。
Package.iniの[BuildOptions]セクションに IgnoreDDEMessages=1
を追加する。コメントアウトされているのでコメントを外せばOK
大まかなキャプチャ作業の流れは、以下を参照ください。
http://tunemicky.blogspot.com/2011/11/office2007thinapp.html
違うのは、
初めにExcel2007をインストールしてから、
ActiveXのインストールを行います。
その後、SimpleBrowserをIEのインストールされている場所にリネーム後に上書きしてしまいます。
最後に、 【ポイント】 にある対処を確実に行います。
以上です。
【IgnoreDDEMessages=1について】
英語のページはこちら
http://nilbrowser.web.fc2.com/indexen.htm
SimpleBrowser は、IE6に見た目が似たブラウザです。
Windows7 でも動作します。IEコンポーネントを利用しているので IE8 のレンダリングエンジンを利用しますが、IE8 が持っている互換モード(IE5/6 の互換レンダリング Quirks モード)を強制的に利用する機能があります。
※必ずreadme.txtを確認してください。
前提として、「 Windows7 で IE6 を動かしたい」というニーズは本当にたくさんあります。
MSから提供される新しいサービス、製品もサポートされるブラウザからIE6がことごとく、
外れています。
SharePoint 2010 では IE6 はサポートブラウザから外れました。
理由は様々ありますが、IE6 には将来がありません。というか IE9 もリリースされていますし
もう少しで IE10 もリリースされますのでIE自体は順調に進化しています。
IE6 は、レンダリングや CSS の解釈に癖が強く、多くの Web開発者 から煙たがられるのも事実です。
IE6 のためだけに、HTML や CSS、JS を用意するのは、本当に大変みたいです。
また、Javascript の実行速度も、最近のモダンブラウザに比べるのが申し訳ないくらい
遅いです。遅すぎます。
という訳で、私も新しい環境である Windows7 では、最新のブラウザ(IE8/9 やFirefox、Google Chrome等)を利用するのが最も良いと思いますし、生産性の面や堅牢性、セキュリティの観点からも
外部のサイトを利用するのには、もはやIE6はお役御免だと思っています。
しかしながら、IE6 を利用したいというニーズはとても多くあり、私が以前にPostした内容は
このBlogの中で一番人気です。(笑)
「 Windows7 で何故 IE6 を利用したいのか?」
http://tunemicky.blogspot.com/2011/11/windows7ie6.html
前置きが長くなりましたが、Webシステムを IE6 以外の選択肢でも
延命することが可能だったので、今回その中核を担った
SimpleBrowser を利用した具体的な内容について書きたいと思います。
※実際の話しをもとにしている風の創作的フィクションですので
ご注意ください。m(__)m
IE6をまったく利用していないので、IEのライセンス的な部分も考えなくてOKだと
個人的に思います。
SimpleBrowser.exeのファイル名をiexplore.exeに変更していますが。。。
初めに、どんな問題があったのか - その課題
対象のIE6 Webアプリの課題は以下でした。
- ActiveX の互換問題
- 連携する MS-Office のバージョン問題
- 一覧画面の情報をエクスポートする(htmファイル)とIE8が起動する。
幸いな事に、「表示が崩れる」の課題は"なく”、そのシステムを利用するための流れは、こんな感じでした。
・1.初めにIEでWebシステムにアクセスする
・2.ログイン画面がポップアップされる。アプリ自体は、ActiveXの中で実行される(通常のWinアプリと似た独自の画面)
・3.帳票を出力する際に、Excel形式(xls)を指定したフォルダに出力する。
出力後にExcelが自動的に起動する。
・1.初めにIEでWebシステムにアクセスする
・2.ログイン画面がポップアップされる。アプリ自体は、ActiveXの中で実行される(通常のWinアプリと似た独自の画面)
・3.帳票を出力する際に、Excel形式(xls)を指定したフォルダに出力する。
出力後にExcelが自動的に起動する。
出力後にIE8が自動的に起動する問題(IE8のタブ型UIを使いたくない。。。)
この問題を解決するためのアプローチ(パッケージ戦略)
1.SimpleBrowserを仮想化し、初めに開くページを設定する(IEは仮想化しない)
2.ActiveXを仮想化する
3.Excel2007を仮想化する。
Excel形式の帳票出力では仮想化したExcel2007を起動する。
ネイティブ側からXLSファイルをダブルクリックした際に仮想Excel2007上で
XLSファイルが開くのを阻止する。
※ネイティブ側にインストールされているExcel2010で開く。
4.IE形式の帳票出力でIE8が起動してしまう問題を回避する。
この仮想化作業のポイント等
【利用環境】
Windows7 SP1 32Bit
Excel2010
【パッケージング環境】
クリーンな WindowsXP SP3
(Windows Updateが全て終わっている状態、最新の状態にしておく)
ThinApp4.7
【必要な物】
Office2007 のメディア(ボリュームライセンス版)
プロダクトキー
ActiveXのインストーラー一式
SimpleBrowser
【ポイント】
・クリーンな環境と Office2007 のCD-ROMを入れるタイミングに注意
・MS明朝 の文字化けを回避するために、MS明朝 「MSMINCHO.TTF」を%Fonts%から削除
・IE形式の帳票出力でIE8が起動してしまう問題への対処
SimpleBrowserの名前をiexplore.exeに変更してしまう。
プロジェクトフォルダを以下の状態にしてしまう。
%ProgramFilesDir%\Internet Explorer
にSimpleBrowser.exeを設置し、名前をiexplore.exeに変更する。
※htmファイルをShellExecute(VBだとRun)コマンドで開いているため
既定のhtmに関連付けされたアプリ(iexplore.exe)が起動します。
そこで、SimpleBrowserの名前を変えてしまう事で対処しています。
・初めに開くサイトを指定する。( http://hogehoge.com/login)
Package.iniのSimpleBrowserのセクションを以下のようにします。
CommandLineを追加する。
[SimpleBrowser.exe]
;Source=%ProgramFilesDir%\Internet Explorer\SimpleBrowser.exe
Source=%ProgramFilesDir%\Internet Explorer\iexplore.exe
CommandLine="%ProgramFilesDir%\Internet Explorer\iexplore.exe" http://hogehoge.com/login
・ネイティブ側からXLSファイルをダブルクリックした際に仮想Excel2007上で
XLSファイルが開くのを阻止する。
ネイティブ側にインストールされているExcel2010で開く。
Package.iniの[BuildOptions]セクションに IgnoreDDEMessages=1
を追加する。コメントアウトされているのでコメントを外せばOK
大まかなキャプチャ作業の流れは、以下を参照ください。
Office2007 仮想化レシピ入門編( ThinApp )
http://tunemicky.blogspot.com/2011/11/office2007thinapp.html
違うのは、
初めにExcel2007をインストールしてから、
ActiveXのインストールを行います。
その後、SimpleBrowserをIEのインストールされている場所にリネーム後に上書きしてしまいます。
最後に、 【ポイント】 にある対処を確実に行います。
以上です。
【IgnoreDDEMessages=1について】
突然現れた、 IgnoreDDEMessages
ですが、VOSに追加された便利機能です。
(ThinApp4.6.2から追加されたパラメータ)
ネイティブ環境からのDDEサーバーへの接続を制限するオプションです。
今回の要件は、デスクトップにあるXLSファイルをダブルクリックした場合に
ネイティブにあるExcel2010で必ず開きたい。
という事でした。
この対処をしないとどうなるかと言うと、仮想Excel2007が起動したままの状態で
デスクトップにあるXLSファイルをダブルクリックすると
仮想Excel2007の中でXLSファイルが開くことになります。
流れとしては、デスクトップのXLSファイルをダブルクリックすると、
エクスプローラーが仮想Excel2007が提供しているDDEサーバーに接続して
ファイルを開く操作を依頼します。
IgnoreDDEMessagesを有効にするとネイティブ環境のエクスプローラが
仮想Excel2007にDDE接続できないようにVOSにより制限されます。
その結果、ネイティブExcel2010で、そのファイルが開くようになります。
このファイルの関連付けに関する概要は、以前に投稿した
「ファイルをダブルクリックしてからアプリが起動するまで」
を参照ください。DDEについて簡単に解説しています。