Я использую VBA для запуска сторонней программы через приглашение CMD, и сторонняя программа преднамеренно выдает ошибку приложения, чтобы сообщить, когда это будет сделано.
Моя проблема заключается в том, что код, который я использую, работает правильно на некоторыхСистемы Windows 10, но не другие сборки Windows 10. Кроме того, некоторые системы Windows 7 выдают ошибку Werfault.exe, и я делаю цикл, который ждет сообщения Werfault.exe и закрывает его.
Цель этого кода - избавиться от этого сообщения после завершения работы программы.
Как заставить этот код работать на всех системах Windows?
Ошибка приложения:
"Sim.exe перестал работать - из-за проблемы программа перестала работать правильно. Windows закроет программу и уведомит вас, если решение доступно."
Снимок экрана с ошибкой:
Мой код 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