Start a document based on its filename
Starting any document file based on its file name only is very simple in Windows using the ShellExecute function. This tip shows how simple it is - you only really need one declare and one line of code!
Start a new project in VB. Add a Command button to the project's form, then add the following code:
Private 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 Private Sub Command1_Click() Dim lR As Long Dim sFile As String Dim iFile As Integer ' Create a text file to test: sFile = App.Path & "\SHELLTST.TXT" On Error Resume Next Kill sFile On Error GoTo 0 iFile = FreeFile Open sFile For Binary Access Write As #iFile Put #iFile, , _ "This is a text file used for testing the ShellExecute API function." Close #iFile ' Start the text file using its filename. Windows will ' check what exe is associated with .TXT files (by default ' this is Notepad) and start the application with the file ' opened: lR = ShellExecute(Me.hWnd, "Open", sFile, "", "", vbNormalFocus) If (lR < 0) Or (lR > 32) Then ' success Else MsgBox "Failed to start '" & sFile & "'", vbInformation End If End Sub
When you click the command button, the app will create a small text file in the project's path, and then open it with the default application (normally Notepad).