Получить в переменную результат Shell "regsvr32.. - VB
Формулировка задачи:
Доброго Вам времени суток
Уважаемые господа.
С наступившим Вас Новым Годом.
Долгих лет Вам жизни, здоровья и успехов делах.
При наличии Вашего времени прошу Вас подсказать.
Данный код позволяет автоматически зарегистрировать список dll в List1.
При регистрации dll выходит диалоговое окно об успешном или не успешном выполнении регистрации.
Добавив к строке ключ
Диалоговое окно не появляется.
Как сделать так чтобы сообщение о регистрации dll (успешном, не успешном ) попадало в переменную для последующей обработки.
Т.е.
С Уважением и Благодарностью
Намик
Уважаемые господа.
С наступившим Вас Новым Годом.
Долгих лет Вам жизни, здоровья и успехов делах.
При наличии Вашего времени прошу Вас подсказать.
Данный код позволяет автоматически зарегистрировать список dll в List1.
При регистрации dll выходит диалоговое окно об успешном или не успешном выполнении регистрации.
Добавив к строке ключ
/s
Диалоговое окно не появляется.
Как сделать так чтобы сообщение о регистрации dll (успешном, не успешном ) попадало в переменную для последующей обработки.
Т.е.
С Уважением и Благодарностью
Намик
Решение задачи: «Получить в переменную результат Shell "regsvr32..»
textual
Листинг программы
Option Explicit Dim hLib As String Dim i As Integer Dim dllz As String Public fso As New FileSystemObject Public file1 As File Private Type SHELLEXECUTEINFO cbSize As Long fMask As Long hwnd As Long lpVerb As Long lpFile As Long lpParameters As Long lpDirectory As Long nShow As Long hInstApp As Long lpIDList As Long lpClass As Long hkeyClass As Long dwHotKey As Long hIcon As Long hProcess As Long End Type Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExW" (lpExecInfo As SHELLEXECUTEINFO) As Long Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Private Const SEE_MASK_NOCLOSEPROCESS As Long = &H40 Private Const SW_SHOWDEFAULT As Long = 10 Private Const INFINITE As Long = -1& Private Sub Command1_Click() Dim sh As SHELLEXECUTEINFO Dim ret As Long sh.cbSize = Len(sh) sh.fMask = SEE_MASK_NOCLOSEPROCESS sh.lpFile = StrPtr("regsvr32.exe") For i = 0 To List1.ListCount - 1 List1.ListIndex = i List1.ListIndex = i ChDir App.Path dllz = List1.Text sh.lpParameters = StrPtr("/s " & dllz & "") sh.nShow = SW_SHOWDEFAULT If ShellExecuteEx(sh) Then WaitForSingleObject sh.hProcess, INFINITE GetExitCodeProcess sh.hProcess, ret CloseHandle sh.hProcess If ret Then Debug.Print "1" Else Debug.Print "2" End If End If Next End Sub Private Sub Form_Load() For Each file1 In fso.GetFolder(App.Path).Files If fso.GetExtensionName(file1.Path) = "dll" Or fso.GetExtensionName(file1.Path) = "ocx" Then List1.AddItem file1.Name End If Next file1 End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д