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

0 comments

Oldest 

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:

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com'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 ...

SearchEnterpriseLinux

SearchDataCenter

SearchExchange

SearchContentManagement

Close