powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дождаться окончания выполнения программы
15 сообщений из 15, страница 1 из 1
Дождаться окончания выполнения программы
    #36674535
vera_t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно заархивировать файл и выложить на ftp сервер. Для этого нужно дождаться когда архивация закончится.Использую следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ProcessID = Shell("c:\arj.exe a -y " & file & " " & "S:\" & buk, vbNormalFocus)
    hOpen = OpenProcess(KEY_DIAL, True, ProcessID)
    Do
Call GetExitCodeProcess(hOpen, hExit)
DoEvents
Loop Until hExit <> STILL_ACTIVE
Call soprov(j)
Но после окончания архивации выполнение программы не возобнавляется. Оператор Call soprov(j)
не выполняется

пробую использовать функцию
WaitForSingleObject ( hOpen = OpenProcess(KEY_DIAL, True, ProcessID))
выходит ошибка: "функция не определена"
хотя она у меня объявлена в начале модуля:
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Помогите кто-нибудь
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36674605
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vera_t,

ну поменяй на Public, а в модуле чего? Если просто в модуле, то паблик, если в модуле класса\формы то правет. А вообще поищи, я с PlanB как-то обсуждал именно этот вопрос
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36674731
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример из Help-а:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec("calc")

Do While oExec.Status =  0 
     WScript.Sleep  100 
Loop

WScript.Echo oExec.Status
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36676652
ak787
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vera_tНужно заархивировать файл и выложить на ftp сервер. Для этого нужно дождаться когда архивация закончится.Использую следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ProcessID = Shell("c:\arj.exe a -y " & file & " " & "S:\" & buk, vbNormalFocus)
    hOpen = OpenProcess(KEY_DIAL, True, ProcessID)
    Do
Call GetExitCodeProcess(hOpen, hExit)
DoEvents
Loop Until hExit <> STILL_ACTIVE
Call soprov(j)
Но после окончания архивации выполнение программы не возобнавляется. Оператор Call soprov(j)
не выполняется

пробую использовать функцию
WaitForSingleObject ( hOpen = OpenProcess(KEY_DIAL, True, ProcessID))
выходит ошибка: "функция не определена"
хотя она у меня объявлена в начале модуля:
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Помогите кто-нибудь

ваш код рабочий, только нужна константа вместо KEY_DIAL
Const PROCESS_QUERY_INFORMATION As Long = &H400

и Loop Until hExit <> STILL_ACTIVE следует заменить на Loop Until hExit = 0
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849629
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробывал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("C:\XmlToXls\unpack.cmd")
Do While oExec.Status =  0 
     WScript.Sleep  100 
Loop
WScript.Echo oExec.Status
На этой строчке:
Код: plaintext
1.
     WScript.Sleep  100 
Выдает ошибку:
Run-time error '424':
Object required
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gabit,

Покажите объявление и инициализацию WScript
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849673
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нету, взял пример с 3-го поста, думал его не надо определять.
А как его объявить ?
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849701
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gabit,

Начнем с того, а в какой среде вы пытаетесь это выполнить????
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849702
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В макросе, который находиться в файле Excel.
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849721
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GabitВ макросе, который находиться в файле Excel.

Тогда сделайте так и не парьтесь:
Код: plaintext
1.
2.
Do While oExec.Status =  0 
     DoEvents
Loop
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36849789
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, спасибо большое !
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36850170
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как говорят, аппетит с каждым разом растет,
Можно ли созданную пакетную строку запустить, пытался так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   Dim WshShell, oExec
   Set WshShell = CreateObject("WScript.Shell")
   Str1 = "set path1=C:\Каталог1\ " & CHAR( 13 )  & "set pbat=C:\Каталог1\файл1.txt"
   Set oExec = WshShell.Exec(Str1)
   Do While oExec.Status =  0 
      DoEvents
   Loop
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36850493
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С помощью WScript.Shell нельзя выполнить команды операционной системы ?
Он не понимает например команду DEL, RENAME.
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36850543
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GabitС помощью WScript.Shell нельзя выполнить команды операционной системы ?
Он не понимает например команду DEL, RENAME.

Для этого нужно юзать Scripting.FileSystemObject
...
Рейтинг: 0 / 0
Дождаться окончания выполнения программы
    #36850612
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, буду попробывать
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дождаться окончания выполнения программы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]