Determining The Name Of The Executable Associated With A Specific File

Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory...

As String, ByVal sResult As String) As Long Const MAX_PATH As Long = 260 Const ERROR_FILE_NO_ASSOCIATION As Long = 31 Const ERROR_FILE_NOT_FOUND As Long = 2 Const ERROR_PATH_NOT_FOUND As Long = 3 Const ERROR_FILE_SUCCESS As Long = 32 'my constant Const ERROR_BAD_FORMAT As Long = 11 Sub Click(Source as Button) 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("winhlp32.hlp", "c:\winnt\system32\", 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

This was first published in November 2000

Dig Deeper



Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:




  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...