ファイルの関連づけに基づいてファイルを起動する
ファイルの関連付けに基づいてファイルを起動するテクニックです。
通常、Shell関数で"Text.DOC"を指定するとMicrosoft Wordは起動されますが、"Text.DOC"は開いてくれません。
ファイルをダブルクリックして開くように、ファイルの関連付けに基づいてファイルを起動する場合はShellExecute関数を使用します。
サンプル(32bit)
'ファイルの関連付けに基づいてファイルを起動するAPI Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Public Const SW_HIDE = 0 Public Const SW_SHOWNORMAL = 1 Public Const SW_SHOWMINIMIZED = 2 Public Const SW_SHOWMAXIMIZED = 3 Public Const SW_SHOWNOACTIVATE = 4 Public Const SW_SHOW = 5 Public Const SW_SHOWMINNOACTIVE = 7 Public Const SW_SHOWNA = 8 Private Sub Command1_Click() Dim nRC As Long nRC = ShellExecute(Me.hwnd, vbNullString, "c:\test.doc", vbNullString, "c:\", SW_SHOWNORMAL) End Sub
サンプル解説
ShellExecute関数でファイルの関連付けに基づいてファイルを起動しています。
引数は次の通りです。
(引数の名前は、Declare Functionで指定したものです)
メンバー I/O 説明 hwnd In 親ウィンドウのハンドル lpOperation In 関連づけのアクション
Nullの場合は標準のアクションになりますlpFile In 実行したいファイル名 lpParameters In アプリケーションに渡すパラメータ
ない場合はNullを指定lpDirectory In 実行時のディレクトリ名 nShowCmd In プログラムを実行するときのウィンドウの形式 ウィンドウの形式は次の通りです。
SW_HIDE ウィンドウ隠し、他のウィンドウをアクティブにします SW_SHOWNORMAL ウィンドウをアクティブにし、元のサイズと位置に表示 SW_SHOWMINIMIZED ウィンドウをアクティブにし、最小化表示 SW_SHOWMAXIMIZED ウィンドウをアクティブにし、最大化表示 SW_SHOWNOACTIVATE ウィンドウを前回表示したサイズと位置で表示 SW_SHOW 元のサイズと位置に表示 SW_SHOWMINNOACTIVE 最小化表示 SW_SHOWNA ウィンドウを現在の状態で表示 ウィンドウの形式はアプリケーションによっては指定した動作をしない場合があります。
[ Window Close ]