Страницы: 1
RSS
VBA Удаление файла с ресурса, Удаление файла
 
Добрый день, форумчане!
Может кто подсказать, как можно удалить файл макросом? Суть следующая, сначала макрос переносит из архива на ресурс файл, затем с файлом занимается также макрос и потом необходимо его удалить. При попытке удалить через Kill  и FSO,FileDelete появляется Debug, что невозможно удалить. А это все потому, что при переносе запускается WINRAR  и файл получается им занят.
Вот и вопрос можно как-то жестко его жестко снести?
 
Цитата
nor написал:
А это все потому, что при переносе запускается WINRAR  и файл получается им занят.
вы сами ответили на свой вопрос. Если файл занят, то ничем его не удалить. Только вот вопрос, почему он занят? Если он был извлечен, то RAR не должен его держать.
По вопросам из тем форума, личку не читаю.
 
БМВ, и я так думал, что RaR после работы должен отцепиться от него, а нет. Приходится через Диспетчер задач снимать процесс с WINRAR.EXE и потом можно делитнуть файл
 
значит некорректно извлекаете
По вопросам из тем форума, личку не читаю.
 
Доброе время суток.
А зачем использовать WinRar, если там же есть unrar - консольное приложение только для извлечения файлов?
Код
unrar e "d:\sourceFilePath\sourceFile.rar" "d:\pathToExtract\"
 
Андрей VG,  Андрей, утро доброе.   Так у WinRar те же консольные команды есть. Так что это не так важно.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
у WinRar те же консольные команды есть
Привет, Михаил.
Знаю. Ну, мало - проблемы и ключ может какой-лишний в собачен. А тут всё же меньше шансов начудить.
 
Цитата
БМВ написал:
значит некорректно извлекаете
я извлекаю командой Е (извлечь файл из архива) и использую 2 ключа -о+ (перезапись) и -inul (не выводить ошибку)
получается = путьRar & "E -o+ -inul"
 
Что происходит если руками это запустить? Есть ощущение что ожидает чего то прлграмма.
По вопросам из тем форума, личку не читаю.
 
Да не, процедура завершается, я в конце даю ожидания, чтобы файл отразился на ресурсе (Application.Wait (3 секунды)) и все

Цитата
Андрей VG написал: есть unrar - консольное приложение только для извлечения файлов?
Не могли подсказать как использовать , на сколько я понимаю это Shell или нет? не встречал такого подхода ранее.  
 
Цитата
nor написал:
Application.Wait (3 секунды)
а кто сказал что этого хватит? используйте Wscript.Shell и run  с ожиданием.
По вопросам из тем форума, личку не читаю.
 
Цитата
Приходится через Диспетчер задач снимать процесс с WINRAR.EXE
Завершите макросом
 
не подскажите как макросом завершить процессс?
 
try this one
https://stackoverflow.com/questions/26303173/how-can-i-kill-task-manager-processes-through-vba-code

or this one

Код
Sub Test2()
    If TaskKill("notepad.exe") = 0 Then MsgBox "Terminated" Else MsgBox "Failed"
End Sub

Function TaskKill(sTaskName)
    TaskKill = CreateObject("WScript.Shell").Run("taskkill /f /im " & sTaskName, 0, True)
End Function

another one

Код
Sub Test3()
    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")

    For Each oProc In cProc
        'NOTE: It is 'case sensitive
        If LCase(oProc.Name) = LCase("notepad.exe") Then 'or EXCEL.EXE
            oProc.Terminate
            MsgBox "KILLED!"   ' used to display a message for testing pur
            Exit For
        End If
    Next
End Sub


P.S. I have tested "Test2" and "Test3"  - they work fine. Good luck!
Изменено: New - 20.03.2021 23:53:25
Страницы: 1
Наверх