Private Declare Function FindExecutable _ Lib "shell32.dll" Alias "FindExecutableA" _ (ByVal lpFile As String, _ ByVal lpDirectory As String, _ ByVal sResult As String) As Long Private Const MAX_PATH = 260 Private Const ERROR_FILE_NO_ASSOCIATION = 31& Private Const ERROR_FILE_NOT_FOUND = 2& Private Const ERROR_PATH_NOT_FOUND = 3& Private Const ERROR_FILE_SUCCESS = 32& 'my constant Private Const ERROR_BAD_FORMAT = 11& Private Sub Command1_Click() Dim success As Long Dim pos As Long Dim sResult As String Dim msg As String sResult = Space$(MAX_PATH) 'lpFile: name of the file of interest 'lpDirectory: location of lpFile 'sResult: path and name of executable associated with lpFile success = FindExecutable(Text1.Text, "c:", sResult) Select Case success Case ERROR_FILE_NO_ASSOCIATION: msg = "no association" Case ERROR_FILE_NOT_FOUND: msg = "file not found" Case ERROR_PATH_NOT_FOUND: msg = "path not found" Case ERROR_BAD_FORMAT: msg = "bad format" Case Is >= ERROR_FILE_SUCCESS: pos = InStr(sResult, Chr$(0)) If pos Then msg = Left$(sResult, pos - 1) End If End Select MsgBox msg End Sub