如何禁用Delphi DataSnap错误消息对话框?
我们在Windows 2003 Server上运行DataSnap Delphi 2009应用程序。 DataSnap客户端和服务器位于同一台计算机上,通过Borland套接字服务器使用DCOM。 客户端运行后台批处理作业。
有时候,我们发现客户端无法连接到服务器应用程序,并在服务器桌面上显示一条消息对话框,指出例如“无法连接到服务器,无法找到网络路径”。 或“未找到对象出口者”。
我们的Delphi客户端代码从不使用消息对话框来显示错误或异常,而是使用try ... except .. finally ... end和logging来处理连接错误,所以我猜对话框是通过DataSnap方法创建的。 有没有办法抑制这种模式对话框?
更新:所有异常都是在较低级别的例程中处理的,主循环负责在引发异常(处理或未处理)时断开连接并重新连接:
while True do
begin
Connect;
while True do
begin
try
DoMyWork;
except
Break;
end;
end;
Disconnect;
end;
解决方案1)可能是应用程序的全局钩子.onexception可以解决这个问题
http://www.chami.com/tips/delphi/011497D.html
解决方案2)
使用EurekaLog或MadExcept来查明应用程序提出错误的位置,并处理错误。
解决方案3)
全局挂钩应用程序消息对话框,钩子示例如下
http://delphi.about.com/gi/o.htm?zi=1/XJ&zTi=1&sdn=delphi&cdn=compute&tm=43&f=22&su=p284.9.336.ip_p504.1.336.ip_&tt=2&bt=1&bts=1&zu=http% 3A // www.delphicorner.f9.co.uk /用品/ apps7.htm
您查询所有应用程序的消息,并且当您捕获该窗口时,则处理消息而不是应用程序。 因为我现在没有时间,我不确切知道messagedlg引发的wmessage究竟是哪一个。
希望有所帮助。
最好的祝福,
链接地址: http://www.djcxy.com/p/64675.html上一篇: How can I supress Delphi DataSnap error message dialogs?
下一篇: What are some empirical technical reasons not to use jQuery?