[PR]

「ファイルやフォルダを開くアプリケーションを選択」
ダイアログを起動する

戻る

 関数 ShellExecute() の第2引数に"openas"を指定することによってダイアログを起動することができる。
 ただし、この方法は、指定ファイルにアプリケーションが関連づけらている場合は使用できない。

//*********************************************************
// 「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する
//*********************************************************
BOOL ShellOpenas( HWND hOwner, const char *FileName )
{
	return ( (HINSTANCE)HINSTANCE_ERROR <= ShellExecute( hOwner, "openas", FileName, NULL, NULL, SW_SHOWNORMAL ) );
}//ShellOpenas

 関連づけの有無に関わらず「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する関数を作る。

//*********************************************************
// 「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する
//*********************************************************
BOOL ShellOpenas( HWND hOwner, const char *FileName )
{
	char Param[1 + MAX_PATH + sizeof("shell32.dll,OpenAs_RunDLL ")];

	// rundll32.exe を コマンドライン引数"shell32.dll,OpenAs_RunDLL ファイル名" で起動する
	sprintf( Param, "shell32.dll,OpenAs_RunDLL %s", FileName ); // コマンドライン引数を作成
	return ( (HINSTANCE)HINSTANCE_ERROR <= ShellExecute( hOwner, NULL, "rundll32.exe", Param, NULL, SW_SHOWNORMAL ) );
}//ShellOpenas

関連

「ファイルやフォルダを検索」ダイアログを起動する
メールアドレス や URL を指定して実行する


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
『新妻LOVELY×CATION』を応援しています!