防止“向Microsoft发送错误报告”【JAVA教程】

!
也想出现在这里? 联系我们
信息

防止“向Microsoft发送错误报告”,第1张

概述防止“向Microsoft发送错误报告”

我正在对文件执行一些运行时subprocess的Java应用程序,对于我得到的一些文件错误导致发送错误报告到Microsoft窗口出现,我需要以编程方式处理此错误,而不显示此窗口给用户。 请任何人都可以帮忙?

iOS应用程序与PC程序通信,反之亦然

如何从内存签名的文件数据中获取签名者的公司名称?

什么事件ID用于我的自定义事件日志条目?

如何将结构转换为字节*

切换RIDEV_CAPTUREMOUSE |时出现奇怪的行为 RIDEV_NolEGACY

为了抑制窗口错误报告被调用的.exe不应该终止与未处理的异常。 这只有在您有权访问应用程序的来源时才有效。

基于WER参考 – 您应该使用Win32 API调用WerAddExcludedApplication将您打算忽略的特定.exe文件添加到每个用户忽略列表 – 您可以创建一个简单的存根应用程序,允许您通过添加应用程序名称到忽略列表。 然后,当你调用应用程序时,它不会触发错误。

同样,您可以使用WerRemoveExcludedApplication创建另一个应用程序来删除它们。

替代方法是使用JNI / JNA来创建一个类来封装这个功能,而不是使用Runtime.exec

下面是一个简单的例子,使用Java本地访问(JNA) ,这是一个简单版本的JNI(大多数情况下不需要C ++)。 下载jna.jar并将其设置为您的项目的一部分。

import com.sun.jna.Native; import com.sun.jna.WString; import com.sun.jna.win32.StdCalllibrary; public class JNATest { public interface Clibrary extends StdCalllibrary { Clibrary INSTANCE = (Clibrary) Native.loadlibrary(\”wer.dll\”,Clibrary.class); int WerAddExcludedApplication(WString name,boolean global); int WerRemoveExcludedApplication(WString name,boolean global); } public static voID main(String[] args) { Clibrary.INSTANCE.WerAddExcludedApplication(new WString(\”C:\\foo.exe\”),false); Clibrary.INSTANCE.WerRemoveExcludedApplication(new WString(\”C:\\foo.exe\”),false); } }

基本上,将新的WString(…)值替换为您打算忽略的应用程序的名称。 出于windows错误报告的目的,应该忽略它。

请记住, wer.dll只在windows Vista和更新版本上,所以如果这是一个问题,那么您可能需要手动编辑注册表项。

你总是可以使用try-catch-finally语句:

try { some code here (the code that is causing the error); } catch (Exception x) { handle exception here; }

这个对我有用…

编辑这里是可以帮助你一点点的链接:

http://www.exampledepot.com/egs/Java%20Language/TryCatch.HTML

总结

以上是内存溢出为你收集整理的防止“向Microsoft发送错误报告”全部内容,希望文章能够帮你解决防止“向Microsoft发送错误报告”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞155 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容