Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: txt я210827.vbs.txt
(1.2 Kb, 0 просмотров)

zergnet, если этот батник будет запускаться через шедулер системы раз в 5 минут, то дергающийся экран не фэншуйно. Поэтому лучше использовать VBS-скрипт.
Код: Выделить весь код
FilePrg = "C:\Windows\System32\notepad.exe"         'Перезапускаемая программа
FileSee = "Z:\Soft_In\файл базы который периодически обновляется.dbf"
FileLog = "Z:\Soft_In\файл базы который периодически обновляется.dbf.log"

With CreateObject("Scripting.FileSystemObject")
    Lfile = .FileExists(FileLog)
    DateTimeSee = .GetFile(FileSee).DateLastModified
    
    If Lfile Then
        With .OpenTextFile(FileLog, 1)
            DateFileOld = .ReadAll
            .Close
        End With
        Lfile = CStr(DateTimeSee) = DateFileOld
    End If
    
    If Not Lfile Then
        With .OpenTextFile(FileLog, 2, True)
            .Write (DateTimeSee)
            .Close
        End With

        SQuery = "Select *From Win32_Process Where Name=" + """" + .GetFileName(FilePrg) + """"
        Do
            Set Processes = GetObject("winMgmts:").ExecQuery(SQuery)
            For Each Process In Processes
                Process.Terminate
            Next
'            MsgBox "Processes.Count=" + CStr(Processes.Count)
        Loop While Processes.Count > 0
        Ret = CreateObject("WScript.Shell").Run("""" + FilePrg + """", 1, False)
    End If
End With
zergnet, здесь программа убивается хамским образом. Сообщите, если есть легальный способ корректно завершить её выполнение.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 28-08-2021 в 11:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:10, 27-08-2021 | #2