様々なところでサポートが切れようとしているE11ですが、念のため表示や動作を確認しておきたいことがあります。Windows11では標準でIE11がインストールされていますが、iexplore.exeをダブルクリックしてもMicrosoft Edgeが起動する仕様となっています。そこでWindows11でIE11を起動させる方法を調べてみました。
COMオブジェクト経由だと普通に起動可
Officeなどのプログラムの互換性を持たせるためかVBAやPowerShellからInternet Explorerのオブジェクトを作成すると普通に起動できました。
例えば、[Win]キー+Rを押し「ファイル名を指定して実行」を開き、下記のコマンドを入力するとInternet Explorerが立ち上がります。
powershell "(New-Object -COM InternetExplorer.Application).visible=$true"
これでWindows11でも、アドレスバーに表示したいURLを入力すると動作や表示を確認することができます。
IEを起動するだけの実行ファイル
上記の項で目的は達成できますが、C++を使って実行ファイルでCOMオブジェクトを生成してIEウィンドウを表示するプログラムを作成してみました。
#include <windows.h>
#import <shdocvw.dll>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPWSTR pCmdLine, int nCmdShow)
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr)) {
SHDocVw::IWebBrowser2Ptr pIE;
hr = pIE.CreateInstance(__uuidof(SHDocVw::InternetExplorer));
if (SUCCEEDED(hr)) {
pIE->PutVisible(VARIANT_TRUE);
SetForegroundWindow((HWND)pIE->GetHWND());
}
}
CoUninitialize();
return 0;
}
何かの参考になりましたら幸いです。