通过VBA关闭应用程序错误仅在某些系统中有效

时间:2019-03-01 16:43:45

标签: excel vba cmd error-handling

我使用VBA通过CMD提示符运行第三方程序,并且第三方程序有意引发应用程序错误以告知何时完成。

我的问题是,我使用的代码在某些Windows 10系统上正确运行,但在Windows 10的其他内部版本上却不能正常运行。另一方面,某些Windows 7系统抛出Werfault.exe错误,我循环等待Werfault.exe消息并关闭它。

此代码的目的是在程序完成后摆脱此消息。

如何使此代码适用于所有Windows系统?

应用程序错误:

  

“ Sim.exe已停止运行-导致程序无法正常运行的问题。Windows将关闭程序并通知您是否有解决方案。”

错误的屏幕截图:

error

我的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

0 个答案:

没有答案