Страница: 1 |
Как запустить из своей проги внешнее приложение.
Shell - если это ехе или сом файлы ShellExecute - если это другие файлы. Для более подробной информации ищи на форуме. Обговорено не один раз. Админы, как то была идея FAQ сделать. Этот вопрос уже давно претендент быть в первых рядах FAQ'a. Для запуска приложения или открытия любого файла: Private Declare Function apiShellExecute 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 Function fHandleFile(stFile As String, lShowHow As Long) Использование: fHandleFile "Путь к файлу", WIN_NORMAL Я пользуюсь этим: Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperatiov As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Const SW_SHOWMAXIMIZED = 1 Private Sub Command1_Click() ' и с другим расширением ShellExecute 0, "open", "C:\путь\acad.exe", "", "", SW_SHOWMAXIMIZED End Sub Private Sub Command2_Click() ' или - htm,txt,xls и т.д. ShellExecute 0, "open", App.Path & "\1.dwg", "", "", SW_SHOWMAXIMIZED End Sub Страница: 1 |
Вопрос: как запустить приложение из проги
Добавлено: 04.12.03 18:38
Автор вопроса: Нукен
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
boevik
Хранитель чата
ICQ: 137392264
Вопросов: 8
Ответов: 557
Web-сайт:
Профиль | | #1
Добавлено: 04.12.03 19:00
Номер ответа: 2
Автор ответа:
mzx
ICQ: 259560026
Вопросов: 21
Ответов: 143
Профиль | | #2
Добавлено: 04.12.03 19:54
Const WIN_NORMAL = 1
Private Const ERROR_SUCCESS = 32&
Private Const ERROR_NO_ASSOC = 31&
Private Const ERROR_OUT_OF_MEM = 0&
Private Const ERROR_FILE_NOT_FOUND = 2&
Private Const ERROR_PATH_NOT_FOUND = 3&
Private Const ERROR_BAD_FORMAT = 11&
Dim lRet As Long, varTaskID As Variant
Dim stRet As String
'First try ShellExecute
ChDir GetPath(stFile)
lRet = apiShellExecute(Me.hwnd, vbNullString, _
stFile, vbNullString, vbNullString, lShowHow)
If lRet > ERROR_SUCCESS Then
stRet = vbNullString
lRet = -1
Else
Select Case lRet
Case ERROR_NO_ASSOC:
'Try the OpenWith dialog
varTaskID = Shell("rundll32.exe shell32.dll,OpenAs_RunDLL " _
& stFile, WIN_NORMAL)
lRet = (varTaskID <> 0)
Case ERROR_OUT_OF_MEM:
stRet = "Ошибка: не хватает памяти или ресурсов."
Case ERROR_FILE_NOT_FOUND:
stRet = "Ошибка: файл не найден."
Case ERROR_PATH_NOT_FOUND:
stRet = "Ошибка: путь не найден."
Case ERROR_BAD_FORMAT:
stRet = "Ошибка: не верный формат файла."
Case Else:
End Select
End If
If stRet <> "" Then MsgBox stRet
'fHandleFile = lRet & _
'IIf(stRet = "", vbNullString, ", " & stRet)
End Function
Номер ответа: 3
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #3
Добавлено: 05.12.03 08:54
Boevik, не хочешь заняться созданием FAQ?
Номер ответа: 4
Автор ответа:
Starik
Вопросов: 24
Ответов: 53
Web-сайт:
Профиль | | #4
Добавлено: 05.12.03 11:49