関連付けされた実行可能ファイル取得(T) <TOP>
関連付けされた実行可能ファイルを取得します。
FindExecutable ファイル名に関連付けられている実行可能ファイル名とハンドルを取得
例では、ディレクトリc:\testにFunction.csv、m2.jtd、jw_cad.docを用意してテストしています。
'================================================================ '= 関連付けされた実行可能ファイル取得
'= (FindExecutable.bas)
'================================================================ #include "Windows.bi" #define OUT_OF_MEMORY_OR_RESOURCES 0 'メモリまたはリソースが足りない #define ERROR_FILE_NOT_FOUND 2 'ファイルが見つからない #define ERROR_PATH_NOT_FOUND 3 'パスが見つからない #define ERROR_BAD_ForMAT 11 '不正な形式の実行ファイル #define NO_ASSOCIATION 31 '関連付けを取得できない ' ファイル名に関連付けられている実行可能ファイル名とハンドルを取得 Declare Function Api_FindExecutable& Lib "Shell32" Alias "FindExecutableA" (ByVal lpFile$, ByVal lpDirectory$, ByVal lpResult$) Var Shared Edit1 As Object Var Shared Edit2 As Object Var Shared Text(3) As Object Var Shared Button1 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 14 Edit2.Attach GetDlgItem("Edit2") : Edit2.SetFontSize 14 For i = 0 To 3 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) Text(i).SetFontSize 14 Next Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() ' Edit1.SetWindowText environ$("windir") & "\win.ini" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var FileName As String Var DefaultDir As String Var ExeFileName As String * 516 Var ExeInst As Long 'デフォルトディレクトリを指定 DefaultDir = GetDlgItemText("Edit1") 'ファイル名を指定 FileName = GetDlgItemText("Edit2") '関連付けられている実行可能ファイル名を取得 ExeInst = Api_FindExecutable(FileName, DefaultDir, ExeFileName) 'インスタンスハンドルにより分岐 Select Case ExeInst Case is > 32 '実行可能ファイル名を表示 Text(3).SetWindowText Left$(ExeFileName, InStr(ExeFileName, Chr$(0)) - 1) Case OUT_OF_MEMORY_OR_RESOURCES Text(3).SetWindowText "メモリまたはリソースが足りません。" Case ERROR_FILE_NOT_FOUND Text(3).SetWindowText "ファイルが見つかりません。" Case ERROR_PATH_NOT_FOUND Text(3).SetWindowText "パスが見つかりません。" Case ERROR_BAD_ForMAT Text(3).SetWindowText "不正な形式の実行ファイルです。" Case NO_ASSOCIATION Text(3).SetWindowText "関連付けが指定されていません。" Case Else Text(3).SetWindowText "関連付けを取得できません。" End Select End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End