Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: как запустить приложение из проги Добавлено: 04.12.03 18:38  

Автор вопроса:  Нукен

Как запустить из своей проги внешнее приложение.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 boevik



Хранитель чата

ICQ: 137392264 

Вопросов: 8
Ответов: 557
 Web-сайт: www.hypertech.ru
 Профиль | | #1
Добавлено: 04.12.03 19:00

Shell - если это ехе или сом файлы

ShellExecute - если это другие файлы.

Для более подробной информации ищи на форуме. Обговорено не один раз.

Админы, как то была идея FAQ сделать. Этот вопрос уже давно претендент быть в первых рядах FAQ'a.

Ответить

Номер ответа: 2
Автор ответа:
 mzx



ICQ: 259560026 

Вопросов: 21
Ответов: 143
 Профиль | | #2 Добавлено: 04.12.03 19:54

Для запуска приложения или открытия любого файла:

 

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
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&

 

Function fHandleFile(stFile As String, lShowHow As Long)
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

Использование:

fHandleFile "Путь к файлу", WIN_NORMAL

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 05.12.03 08:54
Boevik, не хочешь заняться созданием FAQ?

Ответить

Номер ответа: 4
Автор ответа:
 Starik



Вопросов: 24
Ответов: 53
 Web-сайт: нет
 Профиль | | #4
Добавлено: 05.12.03 11:49

Я пользуюсь этим:

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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам