我使用VBA通过CMD提示符运行第三方程序,并且第三方程序有意引发应用程序错误以告知何时完成。
我的问题是,我使用的代码在某些Windows 10系统上正确运行,但在Windows 10的其他内部版本上却不能正常运行。另一方面,某些Windows 7系统抛出Werfault.exe错误,我循环等待Werfault.exe消息并关闭它。
此代码的目的是在程序完成后摆脱此消息。
如何使此代码适用于所有Windows系统?
应用程序错误:
“ Sim.exe已停止运行-导致程序无法正常运行的问题。Windows将关闭程序并通知您是否有解决方案。”
错误的屏幕截图:
我的VBA代码(Windows 10):
Palette.Builder paletteBuilder = Palette.from(bitmap)
.setRegion(0, 0, bitmap.getWidth() / 2, bitmap.getHeight())
.clearFilters() // we want all colors, red / white / black ones too!
.resizeBitmapArea(RESIZE_BITMAP_AREA);
Palette palette = paletteBuilder.generate();
backgroundColor = findBackgroundColorAndFilter(palette);
// we want most of the full region again, slightly shifted to the right
float textColorStartWidthFraction = 0.4f;
paletteBuilder.setRegion((int) (bitmap.getWidth() * textColorStartWidthFraction), 0,
bitmap.getWidth(),
bitmap.getHeight());
if (mFilteredBackgroundHsl != null) {
paletteBuilder.addFilter((rgb, hsl) -> {
// at least 10 degrees hue difference
float diff = Math.abs(hsl[0] - mFilteredBackgroundHsl[0]);
return diff > 10 && diff < 350;
});
}
注意: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
是我的第三方程序的位置。
我的VBA代码(Windows 7):
PathCrnt
Call Shell(PathCrnt, vbNormalFocus)
'Kill the error message
For i = 1 To 100000
If TaskKill("WerFault.exe") = 0 Then Exit For
Next i
功能:
Taskkill