如何避免顯示小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. 避免MySQL1044錯誤
- 2. 如何避免404錯誤與ASIHTTPRequest?
- 3. 如何避免Ruby中的錯誤?
- 4. 如何避免#錯誤和楠SSRS
- 5. 如何避免不是功能錯誤?
- 6. 如何避免Internet Explorer腳本錯誤
- 7. 如何避免PHP會話錯誤?
- 8. 如何避免SAS中的此錯誤?
- 9. 如何避免前向聲明錯誤?
- 10. 我該如何避免android.os.NetworkOnMainThreadException錯誤
- 11. node.js如何避免我的錯誤?
- 12. 如何避免TopoJSON內存錯誤
- 13. 如何避免錯誤消息窗口
- 14. 如何避免$正在進行錯誤
- 15. 如何避免輸出foreach錯誤?
- 16. 如何避免SQLiteException鎖定錯誤
- 17. 如何避免索引錯誤?
- 18. 如何避免XCode中的SVN錯誤?
- 19. 如何避免「SamlAssertion.NotOnOrOffer不滿意」錯誤
- 20. 如何避免級聯錯誤消息
- 21. 避免顯示BS4庫
- 22. Django:避免在製作中顯示錯誤詳細信息
- 23. 如何避免Helgrind誤報?
- 24. 避免Zends錯誤消息
- 25. PHP:SQL查詢 - 避免錯誤
- 26. 避免錯誤的HttpWebRequest(500)
- 27. 避免在零的錯誤
- 28. 如何避免格式錯誤的URI序列錯誤?
- 29. 如何避免
- 30. 如果javascript被禁用,如何避免顯示框?
一個更好的版本,這個問題會表明您已經做了一些工作,以找出其中的錯誤消息來自何處,並定義什麼是「外部事件」的意思究竟。 – 2011-05-29 15:49:36
是的。沒辦法,你可以告訴這裏發生了什麼是沒有錯誤,沒有代碼,甚至不知道消息來自哪裏。 – GolezTrol 2011-05-29 16:13:51
@Robrok:我很高興看到你畢竟沒有放棄發展。然而,在這種情況下,除非你解釋「小窗口錯誤框」是什麼,否則你不可能得到任何好的答案。也許你可以給我們一個對話框的截圖,所以我們至少知道你在說什麼類型的錯誤框... – 2011-05-29 16:17:35