【问题标题】:Adding application to excluded list using vba (WerAddExcludedApplication)使用 vba (WerAddExcludedApplication) 将应用程序添加到排除列表
【发布时间】:2013-08-05 09:00:35
【问题描述】:

我正在尝试以编程方式将程序添加到排除的应用程序列表,这样如果它崩溃,我就不会收到“调试/关闭程序”对话框。它需要在 vba 中,因为它将是用 vba 编写的更大程序的一部分。

下面是我尝试将找到的 C++ 代码 here 转换为 vba

Private Declare PtrSafe Function WerAddExcludedApplication Lib "User32" _
        (ByVal pwzExeName As String, ByVal bAllUsers As Long) As Long

Sub test()
    WerAddExcludedApplication "MyApp.exe", 1
End Sub

有人帮我解决这个问题吗?

谢谢。

阿布塞塔

【问题讨论】:

    标签: winapi vba excel error-reporting


    【解决方案1】:

    您应该检查声明。此 API 不是由 user32.dll 导出的。

    参考所说的库是wer.dll。

    而且这个函数需要 Unicode 字符串。所以,你必须通过它。如下所示

    s = "myapp.exe"
    s = StrConv(s, vbUnicode)
    WerAddExcludedApplication(s, 1)
    

    【讨论】:

    • 感谢您的帮助。我对其进行了如下修改: Private Declare PtrSafe Function WerAddExcludedApplication Lib "wer" (ByVal pwzExeName As String, ByVal bAllUsers As Long) As Long Sub test() Dim s$, Response s = "MyApp.exe" s = StrConv( s, vbUnicode) Response = WerAddExcludedApplication(s, 0) End Sub 我得到 'Access Denied' [Error -2147467259 (0x80004005)] 直到我将第二个参数更改为 0(即存储在 HKEY_CURRENT_USER 中)。
    • 如果您想更新 HKLM 注册表,您必须将 UAC 提升为管理员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2023-03-21
    • 2019-04-02
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多