如何避免显示小Windows错误框的错误?
Try
和Except
不工作,因为错误不是由Delphi显示,而是从程序或我认为从Windows。
try
如何避免显示错误?
Size:=TFileStream.Create(BitFile,fmOpenRead);
except on E: EFCreateError
do EC.Add('Error: ' + IntToStr(GetLastError));
end;
回答
错误是否显示在您的应用程序中?否则,这是一个未处理的异常?或者它是由Windows或外部应用程序显示的框?
你说'事件',但事件处理程序也可以包含try..except块。
如果它是一个异常,并且您不知道它来自哪里,则可以使用TApplicationEvents类来附加Application.OnException事件。它会触发所有未处理的异常。在那里你可以捕获它,或者说,设置一个断点并使用堆栈跟踪来查看异常来自何处。
你现在是我最喜欢的用户,你的答案是有效的,我爱你的男人。:) – 2011-05-29 18:27:24
不客气。 :D – GolezTrol 2011-05-29 22:25:43
这
private
{ Private declarations }
public
procedure MyExceptionHandler(Sender : TObject; E : Exception); //define exception handler
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyExceptionHandler(Sender:TObject;E:Exception);
begin
//Do nothing
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := MyExceptionHandler;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Generate an exception
asm
mov eax,8272
mov [eax],$2FFFFF
end
end;
任何理由你downvoting我的答案??因为我看不到任何人 – opc0de 2011-05-29 18:32:25
@ opc0de:没有解释代码正在做什么(或没有做什么)或者它如何回答问题......一大堆代码没有帮助。 (我知道我从来不会在没有理解的情况下粘贴一些代码。)除此之外...内联asm?我敢打赌,有很多更好的方法来在德尔福中产生一个例外...呃,我不知道,'提高'一个。我没有downvote,因为我不知道德尔福足以判断这个代码......但如果我这样做,那可能是原因。 – cHao 2011-05-29 18:49:55
2个显而易见的原因downvote - *魔术*指针8272和*魔术* DWORD 2FFFFFh – 2011-05-29 21:13:38
一个错误框并不意味着异常被引发。错误框可以在代码中明确显示。
所以,你的问题似乎是“我怎样才能防止第三方代码工作如设计?”。除了反编译二进制文件之外,恐怕我不能提出太多建议,特别是如果你没有源代码。
如果您有源代码并知道需要替换的例程,您可以编写自己的替换程序并在运行时“劫持”例程。例如,这是fastcode项目用来代替delphi的例程而不重新编译VCL的方法。你可以在他们的项目中看到实现。
http://fastcode.sourceforge.net/
单位:FastcodePatch.pas
- 1. 如何避免此错误?
- 2. 如何避免错误
- 3. 如何避免口音beeing显示为
- 4. 如何避免UAFlertView重复显示Notfications
- 5. 避免MySQL1044错误
- 6. 避免system.threading.threadabortexception错误
- 7. 如何避免mysql primaryKey约束错误
- 8. 如何避免SAS中的此错误?
- 9. 如何避免“SamlAssertion.NotOnOrOffer不满意”错误
- 10. 如何避免TopoJSON内存错误
- 11. 如何避免输出foreach错误?
- 12. 如何避免C++中的SIGABRT错误?
- 13. 如何避免Ruby中的错误?
- 14. 如何避免链接错误
- 15. 我该如何避免android.os.NetworkOnMainThreadException错误
- 16. 如何避免前向声明错误?
- 17. 如何避免索引错误?
- 18. 如何避免错误消息窗口
- 19. 如何避免被零错误划分
- 20. 如何避免$正在进行错误
- 21. 如何避免级联错误消息
- 22. 如何避免PHP会话错误?
- 23. 如何避免浮点错误?
- 24. 如何避免不是功能错误?
- 25. 如何避免在Django 1.9.2 admin.E111错误?
- 26. 如何避免Travis-ci“SSL错误”?
- 27. 如何避免404错误与ASIHTTPRequest?
- 28. 如何避免Internet Explorer脚本错误
- 29. 如何避免XCode中的SVN错误?
- 30. 如何避免valgrind strlen错误?
一个更好的版本,这个问题会表明您已经做了一些工作,以找出其中的错误消息来自何处,并定义什么是“外部事件”的意思究竟。 – 2011-05-29 15:49:36
是的。没办法,你可以告诉这里发生了什么是没有错误,没有代码,甚至不知道消息来自哪里。 – GolezTrol 2011-05-29 16:13:51
@Robrok:我很高兴看到你毕竟没有放弃发展。然而,在这种情况下,除非你解释“小窗口错误框”是什么,否则你不可能得到任何好的答案。也许你可以给我们一个对话框的截图,所以我们至少知道你在说什么类型的错误框... – 2011-05-29 16:17:35