Типа как это делает виндусовый эксплорер. Т.е. дано только имя файла произвольного типа, нужно открыть его в ассоциированном с его расширением приложении. Типа doc - в ворде, xls - в экселе, psd - в фотошопе и т.д.
Public 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
Public Const SW_SHOWMAXIMIZED = 3
'Использование
Call ShellExecute(0, "open", "Имя и путь к файлу","", "", SW_SHOWMAXIMIZED)
Чтобы это работало на компьютере, нужно, чтобы Windows знали что делать с файлом с таким расширением. Если в реестре необходимой информации нету, то плохи твои дела.
Кстати, на разных компьютерах могут запускаться различные приложения для обработки фалов, например xls... я, к примеру, может быть Excel-ский файл юзаю в блокноте - вот блокнот и запустится.
Чтобы избежать этой путаницы, нужно открывать файл непосредственно в нужном приложении... Например, чтобы загрузить Excel, нужно создать объект типа Excel.Application с помощью функции CreateObject, затем с помощью OLE Automation открыть в нем нужный файл... Вот так-то
Ну а если Excel нет на машине клиента? Что делать? Черт его знает.
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) Private Declare Function GetDesktopWindow Lib "User32" () As Long Const SW_SHOWNORMAL = 1