2

ファイルの関連付けが正しい限り、Windows の ShellExecute 関数を使用して問題なくファイルを開くことができます。

関連付けが存在しない場合は、デフォルトの Windows ダイアログを使用してファイルを開きたいと思います。

画像

これは可能ですか?もしそうなら、どのように?

4

3 に答える 3

6

そのダイアログを表示するための文書化された 方法は、openas動詞を使用することです。

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED|COINIT_DISABLE_OLE1DDE);
SHELLEXECUTEINFO sei = { sizeof(sei) };
sei.fMask = SEE_MASK_NOASYNC;
sei.nShow = SW_SHOWNORMAL;
sei.lpVerb = "openas";
sei.lpFile = "C:\\yourfile.ext";
ShellExecuteEx(&sei);

下をチェックするHKEY_CLASSES_ROOT\Unknown\shell\openasと、これはshell32で(文書化されていない)OpenAs_RunDLLエクスポートを呼び出すのと同じであることがわかります。

于 2011-06-17T16:14:35.470 に答える
1

実行するRUNDLL32 Shell32,OpenAs_RunDLL path/to/file/to/open

于 2011-06-16T14:49:39.270 に答える