Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Завершение работы запущенной программы  [new]
VaRas
Member

Откуда:
Сообщений: 202
Ребята подскажите что сделал не так.
взял отсюда модуль RunAndWait http://am.rusimport.ru/MsAccess/topic.aspx?ID=119

На выходе из формы написал так:
Private Sub Form_Close()
    RunAndWait "7-zip.exe a D:\Arhiv\arhiv.zip D:\Arhiv\*.*", "C:\Program Files\7-zip\", vbNormalFocus
End Sub

при компиляции выдает ошибку

Compile Error:
Expected variable or procedure, not module


Заранее благодарен

Access 2002 SP2
26 ноя 06, 18:21    [3452488]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
VaRas
Expected variable or procedure, not module
Видимо, у вас модуль называется так же как функция. Назовите модуль иначе.
26 ноя 06, 18:39    [3452520]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
VaRas
Member

Откуда:
Сообщений: 202
Karfaqen
VaRas
Expected variable or procedure, not module
Видимо, у вас модуль называется так же как функция. Назовите модуль иначе.


Да Karfaqen, так и есть. Исправил. Но RunAndWait почему-то не работает, т.к., не дожидаясь завершения запускается следующая за ней операция, и выкидывает ошибку

RunTimeError 70
Permission denied
27 ноя 06, 12:40    [3454633]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
bubucha
Member

Откуда:
Сообщений: 5642
всю дорогу юзал следующее (автора не знаю), использовалось для запуска экзотичекого арховатора
 Private Type STARTUPINFO
         cb As Long
         lpReserved As String
         lpDesktop As String
         lpTitle As String
         dwX As Long
         dwY As Long
         dwXSize As Long
         dwYSize As Long
         dwXCountChars As Long
         dwYCountChars As Long
         dwFillAttribute As Long
         dwFlags As Long
         wShowWindow As Integer
         cbReserved2 As Integer
         lpReserved2 As Byte
         hStdInput As Long
         hStdOutput As Long
         hStdError As Long
 End Type

 Private Type PROCESS_INFORMATION
         hProcess As Long
         hThread As Long
         dwProcessId As Long
         dwThreadId As Long
 End Type

 Private Const NORMAL_PRIORITY_CLASS = &H20&
 Private Const INFINITE = -1&

 Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
          lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _
          lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
          ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
          ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
          lpStartupInfo As STARTUPINFO, lpProcessInformation As _
          PROCESS_INFORMATION) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
         hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal _
         hObject As Long) As Long

Public Sub ExecCmd(cmdline$)
         Dim proc As PROCESS_INFORMATION
         Dim start As STARTUPINFO
         Dim ret As Long

         ' Initialize the STARTUPINFO structure:
         start.cb = Len(start)

         ' Start the shelled application:
         ret = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
            NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

         ' Wait for the shelled application to finish:

         ret = WaitForSingleObject(proc.hProcess, INFINITE)
         ret = CloseHandle(proc.hProcess)
End Sub

27 ноя 06, 13:00    [3454813]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
Allll
Member

Откуда:
Сообщений: 1435
RunAndWait, на который Вы дали ссылку, работает нормально. Только что проверил (Access 87 & Win 98).

Попробуйте выполнить небольшой тест:
Sub test()
    RunAndWait "C:\WINDOWS\CALC.EXE", "c:\", vbNormalFocus
    Stop
End Sub
Должен запуститься калькулятор и пока вы не закроете его, не должно быть перехода на строчку с командой Stop.

Вы пробовали запустить в командной строке 7-zip.exe a D:\Arhiv\arhiv.zip D:\Arhiv\*.*? Выполняется нормально?

Я бы написал так: "C:\Program Files\7-zip\7-zip.exe" a D:\Arhiv\arhiv.zip D:\Arhiv\*.*.
27 ноя 06, 13:11    [3454905]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
Бенедикт
Member

Откуда:
Сообщений: 2099
bubucha,
автор - MS, Q209876. Кстати, оригинал погибче за счёт DoEvents.
27 ноя 06, 13:37    [3455127]     Ответить | Цитировать Сообщить модератору
 Re: Завершение работы запущенной программы  [new]
VaRas
Member

Откуда:
Сообщений: 202
Allll
Я бы написал так: "C:\Program Files\7-zip\7-zip.exe" a D:\Arhiv\arhiv.zip D:\Arhiv\*.*.

Исправил. помогло.
Всем большое спасибо
27 ноя 06, 14:01    [3455349]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить