4

Win32 固有の API を使用して、ファイルのパス/名前を渡すだけで外部アプリケーションを起動してファイルを開く簡単な方法はありますか?

たとえば、C:\tmp\image.jpg というファイルがあるとします。.jpg ファイルに関連付けられたアプリケーションを開くように Windows に指示するために呼び出すことができる単一の API はありますか? 一連のレジストリ ルックアップを実行する必要はありませんか?

何年も前にこれをやったのを覚えていると思ったのですが、見つかりません。

4

2 に答える 2

12

ShellExecute

指定されたファイルに対して操作を実行します。

構文

C++

HINSTANCE ShellExecute(
  _In_opt_ HWND    hwnd,
  _In_opt_ LPCTSTR lpOperation,
  _In_     LPCTSTR lpFile,
  _In_opt_ LPCTSTR lpParameters,
  _In_opt_ LPCTSTR lpDirectory,
  _In_     INT     nShowCmd
);

パラメーター

...

nShowCmd [in]

タイプ:

アプリケーションを開いたときのアプリケーションの表示方法を指定するフラグ。lpFileがドキュメント ファイルを指定する場合、フラグは関連付けられたアプリケーションに単純に渡されます。それをどのように扱うかはアプリケーション次第です。これらの値は Winuser.h で定義されています...

于 2008-12-14T23:18:17.980 に答える
6

ShellExecuteはあなたが探している関数です。実行可能ファイルタイプと登録済みファイルタイプの両方を処理できサポート内容に応じて、ファイルに対してあらゆる種類のアクション(動詞)を実行できます。

構文は次のとおりです。

HINSTANCE ShellExecute(
    HWND hwnd,            // handle to owner window.
    LPCTSTR lpOperation,  // verb to do, e.g., edit, open, print.
    LPCTSTR lpFile,       // file to perform verb on.
    LPCTSTR lpParameters, // parameters if lpFile is executable, else NULL.
    LPCTSTR lpDirectory,  // working directory or NULL for current directory.
    INT nShowCmd          // window mode e.g., SW_HIDE, SW_SHOWNORMAL.
);

詳細については、親しみやすい近所のMSDNドキュメントを参照してください。

于 2008-12-15T00:44:22.190 に答える