ファイルを関連付けに従って開く方法【Windows API】

Windowsにはファイルの関連付けという概念があります。拡張子とそれを取り扱うプログラム をレジストリに設定することによりファイルを開くときに自動的に適切なプログラムで起動 してくれるという親切な機能です。この機能をプログラム上から明示的に使う場合はShellExecute 関数を使用します。URLやメールアドレスを指定することができるので、ちょっとしたサイト誘導 やバージョン情報画面などに活用できます。

#include "shellapi.h"

HINSTANCE hInst;

hInst = ShellExecute(NULL, "open", "D:\\TEST.TXT", 
                     NULL, NULL, SW_SHOWNORMAL);

if (hInst < (HINSTANCE)32) {
    MessageBox(NULL, "ファイルオープンに失敗しました",
                "エラー", MB_ICONINFORMATION);
}

// 同じやりかたでURLを開くこともできる
// 関連付けされているブラウザで開きます。
// プログラムからサイトに誘導する場合に使用できます。

hInst = ShellExecute(NULL, "open", "http://www.yahoo.co.jp",
                    NULL, NULL, SW_SHOWNORMAL);

if (hInst < (HINSTANCE)32) {
    MessageBox(NULL, "ブラウザの起動に失敗しました",
                     "エラー", MB_ICONINFORMATION);
}

 

Windows API

Posted by @erestage