CX's Hatena Blog

はてなブログを使ってみるテスト

Win10 移行の前に IE Dev Channel 版はアンインストールした方がよさげ

Windows 8.1IE Dev Channel 版をインストールした状態で、Windows 10 にアップグレードすると「ファイル名を指定して実行」でエラーが発生するようです。

f:id:cx20:20150723215353p:plain

前提条件

事象再現方法

「ファイル名を指定して実行」より「calc.exe」を入力し [OK] ボタンをクリックします。

f:id:cx20:20150723215354p:plain

結果、以下のエラーが表示されます。 f:id:cx20:20150723215353p:plain


calc.exe - 序数が見つかりません


序数 581 がダイナミック ライブラリ C:\ProgramData\App-V\9BD02EED-6C11-4FF0-8A3E-0B4733EE86A1\6A0357B5-AB99-4856-8A59-CF2C38579E78\Root\VFS\System\ieframe.dll から見つかりませんでした。


OK


※ calc.exe の他に、URL を指定して実行した場合も、エラーとなります。

解決方法

「プログラムと機能」より「Internet Explorer Developer Channel」をアンインストールします。

f:id:cx20:20150723220954p:plain

ウィザードに従って、アンインストールします。 f:id:cx20:20150723220955p:plain

修正結果確認

「ファイル名を指定して実行」より「calc.exe」を入力し [OK] ボタンをクリックします。

f:id:cx20:20150723215354p:plain

Windows 10 の新しい電卓が起動します。

f:id:cx20:20150723220959p:plain

calc.exe と ieframe.dll の関係

一見、calc.exe と ieframe.dll は紐づかないようなイメージがありますが、以下の理由により、呼び出されるようです。

  1. Windows 10 の calc.exe は、電卓の実体ではなく、ストアアプリ版の電卓を呼び出す為のプログラムとなっている。
  2. ストアアプリ版の電卓は「calculator://」で呼び出す仕組みとなっている。
  3. ShellExecute() API にて「calculator://」が実行され、その過程で ieframe.dll が呼ばれる ※ (shell32.dll → shdocvw.dll → ieframe.dll)

※ 呼び出しの過程は Dependency WalkerAPI Monitor にて確認

参考

answers.microsoft.com