C++のプログラムからGoogle Chromeを起動し、指定したURLを開く方法をメモしておきます。Win32APIを使った方法とそうでない方法をまとめておきました。
ShellExecuteを使った方法
Win32アプリケーションでは、ShellExecuteを使用するのが便利です。
ShellExecuteは既定のプログラムでファイルやURLを開くことができます。
ShellExecute(NULL, _T("open"), _T("https://google.com"), NULL, NULL, SW_SHOWDEFAULT);
Google Chromeが既定のアプリケーションに設定されていれば、Google Chromeで指定したURLが開かれます。
ただし、Google Chromeで開くには、あらかじめChromeが既定のブラウザに設定されていることが必要です。また、Win32でなければ動作しないので、Windows以外のOSでは無効な方法となります。
シェルから起動する
Win32を使いたくない場合は、system関数から呼び出す方法がおすすめです。
C++からコマンドプロンプトを実行して、Chromeを開きます。
#include <stdlib.h>
int main(void)
{
system("start chrome.exe https://google.com");
}
system関数をつかうと、シェル(コマンドプロンプト)で指定したコマンドを実行することができます。
Windowsの場合は、コマンドプロンプトからstart chrome.exe <URL>を実行すると、Chromeを起動できます。このコマンドをC++から実行させてもChromeを起動することができます。
こうしてみると、こっちのほうがかんたんかもしれませんね。Win32APIも不要です。
まとめ
ShellExecuteを一番にあげましたが、改めて考えてみると後者のほうが応用がききやすいかもしれませんね。オプションを付ければ、プロキシを無効にしたり、プライベートタブで開いたりといろいろできます。今後は自分もこちらの方法でやっていこうかなと思ったりしています。
コメント