Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2017, 16:56   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию Удалить процесс при закрытии книги, с проверкой (vba excel 2003)

Здравствуйте Уважаемые программисты!
На листе книги (excel 2003) есть кнопка с макросом, код которого приведен ниже (vba excel 2003). После щелчка по кнопке происходит копирование файла "форма.exe" с сервера во временную папку, после чего файл "форма.exe" запускается из этой временной папки.
Подскажите пожалуйста код (vba excel 2003), чтобы при закрытии книги, файл "форма.exe" из временной папки удалялся, если процесс "форма.exe" не выполняется (дело в том что у меня сейчас можно закрыть книгу, но приложение "форма.exe" может выполняться, т.е. еще не закрыто пользователем).
Заранее спасибо!

Код:
Sub Копировать(Optional x As Boolean)

Dim sFileName As String, sNewFileName As String
sFileName = "\\server\форма.exe"
sNewFileName = Environ("temp") & "\" & "форма.exe"
FileCopy sFileName, sNewFileName

Dim MyPath
MyPath = Shell(Environ("temp") & "\" & "форма.exe " & ThisWorkbook.FullName, 1)

End Sub
ольгаг вне форума Ответить с цитированием
Старый 21.02.2017, 22:37   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

в теме написано:
> Удалить процесс при закрытии книги
в сообщении:
> файл "форма.exe" из временной папки удалялся, если процесс "форма.exe" не выполняется

Так что надо?
Процесс завершить?

Если только удалить файл, если процесс завершен, - то всё проще некуда
(код - в модуль книги)
Код:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next: Kill Environ("temp") & "\" & "Форма.exe"
End Sub
(файл не удалится при запущенном процессе)
EducatedFool вне форума Ответить с цитированием
Старый 22.02.2017, 14:24   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо большое!
Подскажите пожалуйста, если процесс "форма.exe" при закрытии книги еще выполняется, то как его можно отследить (что он запущен) и попросить пользователя завершить его, не дав закрыть книгу?
ольгаг вне форума Ответить с цитированием
Старый 24.02.2017, 14:39   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от ольгаг Посмотреть сообщение
Спасибо большое!
как его можно отследить (что он запущен)
Так можно
Код:
Function Cont_Proc() As Boolean
Dim Process As Object
For Each Process In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process") 
If Process.Caption Like "Форма*" Then Cont_Proc = True:Exit For
 Next
End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.02.2017, 17:06   #5
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 325
По умолчанию

Спасибо!
ольгаг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
excel+vba странности взаимодействия при сохранении книги без макросов alvazor Microsoft Office Excel 7 06.07.2009 17:22
При закрытии книги переключится в рабочий лист valerij Microsoft Office Excel 8 03.07.2009 00:38
Сохранение копии книги при ее закрытии. Busine2009 Microsoft Office Excel 17 17.06.2009 04:36
Автозапуск макроса при открытии и закрытии книги ruavia3 Microsoft Office Excel 8 06.04.2009 11:09
При закрытии книги, удаляются листы Romuald Microsoft Office Excel 3 20.01.2009 21:34