Ошибка закрытия приложения через VBA работает только в некоторых системах - PullRequest
0 голосов
/ 01 марта 2019

Я использую VBA для запуска сторонней программы через приглашение CMD, и сторонняя программа преднамеренно выдает ошибку приложения, чтобы сообщить, когда это будет сделано.

Моя проблема заключается в том, что код, который я использую, работает правильно на некоторыхСистемы Windows 10, но не другие сборки Windows 10. Кроме того, некоторые системы Windows 7 выдают ошибку Werfault.exe, и я делаю цикл, который ждет сообщения Werfault.exe и закрывает его.

Цель этого кода - избавиться от этого сообщения после завершения работы программы.

Как заставить этот код работать на всех системах Windows?

Ошибка приложения:

"Sim.exe перестал работать - из-за проблемы программа перестала работать правильно. Windows закроет программу и уведомит вас, если решение доступно."

Снимок экрана с ошибкой:

error

Мой код VBA (Windows 10):

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1
wsh.Run PathCrnt, windowStyle, waitOnReturn

Примечание: PathCrnt - это местоположениемоя сторонняя программа .

MyКод VBA (Windows 7):

    Call Shell(PathCrnt, vbNormalFocus)

   'Kill the error message

For i = 1 To 100000

    If TaskKill("WerFault.exe") = 0 Then Exit For

Next i

Taskkill Функция:

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