如何抑制 Delphi DataSnap 错误消息对话框?

2024-01-29

我们在 Windows 2003 Server 上运行 DataSnap Delphi 2009 应用程序。 DataSnap 客户端和服务器位于同一台计算机上,通过 Borland Socketserver 使用 DCOM。客户端运行后台批处理作业。

有时,我们发现客户端无法连接到服务器应用程序,并在服务器桌面上显示消息对话框,例如“无法连接到服务器。找不到网络路径”。或“未找到对象导出器”。

我们的 Delphi 客户端代码从不使用消息对话框来显示错误或异常,而是使用 try ... except .. finally ... end 和日志记录来处理连接错误,所以我猜该对话框是由 DataSnap 方法创建的。有没有办法抑制这个模式对话框?

更新:所有异常都在较低级别的例程中处理,主循环负责在引发异常(已处理或未处理)时断开连接和重新连接:

  while True do
  begin
    Connect;
    while True do
    begin
      try
        DoMyWork;
      except
        Break;
      end;
    end;
    Disconnect;
  end;

解决方案1) 也许应用程序上的全局钩子可以解决这个问题

http://www.chami.com/tips/delphi/011497D.html http://www.chami.com/tips/delphi/011497D.html

解决方案2)

使用 EurekaLog 或 MadExcept 来找出应用程序引发错误的位置,并处理该错误。

解决方案3)

应用程序消息对话框上的全局钩子,钩子示例如下

您查询应用程序的所有消息,当您捕获该窗口时,您将处理消息而不是应用程序。因为我现在没有时间,我不知道到底哪个是 messagedlg 引发的 wmessage。

希望有帮助。

此致,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何抑制 Delphi DataSnap 错误消息对话框? 的相关文章

  • TWebbrowser 大量内存泄漏:到目前为止还没有解决方案

    我有一个使用的应用程序TWebbrowser定期导航到特定 URL 并提取一些数据 该应用程序 24x7 持续运行 并在页面中进行大量导航 问题是TWebbrowser有一个众所周知的内存泄漏问题 每次导航到新页面时 应用程序使用的内存都会
  • 作为属性的类引用

    谷歌对于这类搜索毫无用处 因为你会得到数亿个结果 其中没有一个与特定问题相关 问题很简单 Delphi 中是否可以有类引用属性 如果是这样 怎么办 这是我尝试过的 type TMyObject class end TMyObjectClas
  • 线程关闭期间 Win64 Delphi RTL 中的内存泄漏?

    很长一段时间以来 我注意到我的服务器应用程序的 Win64 版本存在内存泄漏问题 虽然 Win32 版本工作正常 内存占用相对稳定 但 64 位版本使用的内存却定期增加 可能 20Mb 天 没有任何明显的原因 不用说 FastMM4 没有报
  • 在 Delphi 7 中使用 TScreen

    我的 Delphi 7 应用程序显示 Screen DesktopWidth Screen DesktopHeight Screen Monitors 0 Width Screen Monitors 0 Height 并且 如果选择了第二台
  • 如何正确实现TBitmap的扫描线访问?

    我正在尝试根据以下方式访问位图的扫描线关于内河码头的文章 http edn embarcadero com article 29173 使用像这样的扫描线 for y 0 to n do begin line bitmap scanline
  • 使用 GdiPlus 卸载 DLL 时程序挂起

    我有一个加载 DLL 的应用程序 它使用德尔福 GDI 库 http sourceforge net projects delphigdiplus 该应用程序在卸载 DLL 时挂起 调用免费图书馆 https msdn microsoft
  • 条件表达式在包内是否被破坏?

    考虑以下片段 requires designide rtl vcl IF RTLVersion lt 19 0 E2026 Constant expression expected IF CompilerVersion 22 0 same
  • 在 Outlook 中创建带有附件的邮件并显示它

    我想在 Outlook 中创建一封带有附件的邮件并在发送之前显示它 但我想我已经尝试了几乎在网上找到的所有示例 但没有任何运气 我可以使用 Indy 但我非常想使用 Outlook 来确保邮件正确 因为它是用于商业用途 函数的任何输入 该函
  • 使用 StretchDIBits 使用 Delphi 6 处理条形码图像 - 输出中缺少条形线

    我的应用程序是在 Delphi 6 中开发的 由于后台处理和大量数据 它消耗大约 60MB 120MB 物理内存 这是一个资源密集型应用程序 该应用程序的功能之一是在进行某些处理后创建条形码图像 如果用户继续生成条形码 那么至少十分之一的条
  • Delphi - 相当于C#的三元运算符? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi 中是否存在或者将来是否存在条件运算符 https stackoverflow com questions 2108609 is there or is there ever going
  • Delphi XE 中的数据绑定向导 - 可以将其配置为映射到 MSXML 接口吗?

    Delphi XE 中的数据绑定向导生成继承自 Delphi 自己的 DOM ADOM XML v4 实现的类和接口 它似乎不支持针对模式进行验证 解析时验证 选项仅适用于 MSXML 供应商type 从 VCL 源代码以及 IDE 中 X
  • 如何将 JSON 字符串转换为图像?

    我有一个将图像转换为 JSON 数组的应用程序 并将其保存到 blob 字段中 function getImage String var memorystream TMemoryStream jsonArray TJSONArray beg
  • 我需要避免尝试更新连接到 TSQLQuery 的 Delphi TClientDataset 中的非物理字段

    概要 我的代码正在尝试更新 Delphi XE 中的非物理字段TClientDataset 连接到TSQLQuery以其SQL属性集 作为运行时的结果创建Open命令 我有一个TClientDataset连接到一个TDatasetProvi
  • 如何追踪“地址 00000000”的访问违规

    我知道如何创建 map 文件来在错误消息包含实际地址时跟踪访问冲突错误 但是如果错误消息说怎么办 Access violation at address 00000000 Read of address 00000000 我从哪里开始寻找这
  • 在TImageViewer中,如何获取用户点击图片的位置?

    在TImageViewer控件中 用户可以缩放或平移图片 我的问题是 当用户点击图片时 如何获取用户在图片上的点击位置 尤其是用户可以对图片进行放大 缩小或平移之后 如何获取对应的图片点击位置呢 As shown below How to
  • 使用 TStringList 的分隔符解析字符串,似乎也解析空格(Delphi)

    我有一个简单的字符串 由某个字符分隔 比如说逗号 我应该能够创建一个 TStringList 并将其分隔符设置为逗号 然后将 DelimitedText 设置为我想要解析的文本 并且应该自动解析它 问题是 当我查看输出时 它还包含空格作为分
  • DELPHI 和 WANT 或 NANT

    We use 巡航控制 net http confluence public thoughtworks org display CCNET Welcome to CruiseControl NET在 Delphi 2006 应用程序中进行持
  • 如何释放 TInterfacedObject 中的 TObject 成员

    我知道接口对象是引用计数的 因此不需要手动释放它 但如果它有一个 TObject 继承成员 我是否应该在析构函数中手动释放该成员 考虑以下代码 program Project2 APPTYPE CONSOLE R res uses Syst
  • 如何用不同的颜色绘制选定的列表框项目?

    是否可以更改 TListBox 中的项目选择焦点颜色和文本颜色 当项目中未启用主题或列表框样式设置为所有者绘制时 项目周围的选择将被涂成蓝色 我相信这是由系统的外观设置全局定义的 我想将所选项目的颜色更改为自定义颜色 举个例子 结果会是这样
  • 如何使用 FieldDefs 在运行时创建新的 SQLite 文件和表?

    我正在使用 Delphi Seattle 在全新的 SQLite 文件中创建一个全新的表 并且仅使用 FieldDefs 和非可视代码 我可以使用 ExecSQL CREATE TABLE 语法创建一个表 但不能如下所示 我得到 没有这样的

随机推荐

  • Filepicker.io Web - 禁用内联样式

    我在为网络设计 filepicker io 小部件时遇到一些麻烦 特别是filepicker dragdrop 有什么方法可以禁用内联样式并将其替换为类吗 就像是data fp disable styles或者也许在使用时data fp d
  • 如何强制 Swift 可选数组(很好)

    使用斯威夫特 2 1 我正在寻找一种好方法将非可选类型数组分配给可选类型数组 其中类型相同 以下是我尝试过的一些方法 var foos Int let bars Int foos bars Error Cannot assign value
  • 红宝石中的“$:”是什么?

    通常可以在 gemspec 文件中看到 例如 i18n gemspec https github com svenfuchs i18n blob master i18n gemspec lt lt File expand path lib
  • 硒等待两个元素之一出现

    很多时候我希望网络驱动程序等待两个元素之一的存在 通常 当我期望页面在某些情况下显示元素 1 或元素 2 时 就会发生这种情况 目前 我正在使用两次等待顺序执行此操作 但效率很低 因为我需要等待 2 次 有什么办法可以将两种等待合二为一吗
  • 使用 LINQ 将数据插入到使用序列作为主键生成器的表中

    我有一个表 它根据序列生成主键 从 0 开始计数 CREATE TABLE dbo testTable id int NOT NULL a int NOT NULL CONSTRAINT PK testTable PRIMARY KEY C
  • 如何将 Z3 与 C++ 结合使用

    我想将 Z3 与 C 一起使用 并且我遵循了安装指南 使用 Visual Studio 命令提示符在 Windows 上构建 Z3 https github com Z3Prover z3 building z3 on windows us
  • Webmatrix 布局——插入头部?

    我使用 Asp Net 和 Razor 视图引擎创建了一个网站 与使用 WebMatrix 相同 到目前为止 我一直在使用 SQL 直接查询数据库 但现在我有一个页面需要查询返回 XML 的 WCF 服务 让它返回 JSON 或 ODATA
  • 在 SQLAlchemy 中使用 declarative_base 时,如何根据需要绑定引擎?

    这是我的代码 from sqlalchemy import create engine Column Integer from sqlalchemy ext declarative import declarative base from
  • 如何在 postgresql 中找到列中的最大值?

    例如 name weight jon 100 jane 120 joe 130 如何只返回权重最大的人的名字 SELECT name FROM tbl ORDER BY weight DESC LIMIT 1 比其他答案性能更高 并且仅产生
  • 2013 年我应该使用 HTML5 编写我的网站吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 验证日期模式

    我需要一个 javascript 方法来验证日期模式 如下所示 2012 年 1 月 14 日 到目前为止 我不确定该模式使用哪个正则表达式 因为它不是标准日期 例如 14 01 2012 或 01 14 2012 或 01 04 2012
  • 为什么 jqueryUI datepicker 会抛出错误?

    我正在尝试 jqueryUI 但 firebug 在该脚本上捕获以下错误 function date datepicker 萤火虫错误如下 date datepicker is not a function 在我的 html 上 日期 id
  • 启发式和元启发式有什么区别?

    经过对算法的一些研究后 我发现了两个令我困惑的术语 我读过至少 20 篇论文 但都没有任何明确的定义 我希望有人能帮助我区分启发式算法和元启发式算法之间的区别 如果可能的话 添加它的来源 ps 我已经知道这些词的含义 但我不知道它们在计算机
  • 如何将旋转器数据从一个活动传递到另一个活动?

    此代码不会从微调器读取值 它始终只读取第一个值 btnResult setOnClickListener new View OnClickListener final String USN spnConversions getSelecte
  • 在 Visual Studio 中设置 FILE_ATTRIBUTE_DEVICE

    我想知道是否可以在 Visual C 中调用 CreateFile 函数来创建属性为 FILE ATTRIBUTE DEVICE 0x00000040 十六进制 64 十进制 的文件 根据 MSDN API FILE ATTRIBUTE D
  • Laravel 4 - 使用 hasMany 关系时插入多条记录

    仍在适应 Laravel 4 我有点不确定为什么这不起作用 在 L3 中 我能够将多条记录插入到表中 如下所示 comments array array message gt A new comment array message gt A
  • 依赖项规范必须是字符串或映射

    pubspec yaml 第 32 行第 5 列出错 依赖项规范必须是字符串或映射 32 assets 33 酒吧失败 65 问题是我的资产文件夹位于错误的位置 它不应该处于依赖关系下 另外 assets 前必须加2个空格 如图
  • Swift 中的属性和变量有什​​么区别?

    从一些最初的教程中 我看到属性属于一个类 本质上是 C 世界中使用的 全局变量 几年前编码 我还认为变量更多的是仅在方法中使用 存储信息的 本地 实体 然后我看到了 Quora 的这个帖子 https www quora com Apple
  • Java win32 库/api

    是否有合适的 Java win32 库 例如 显示当前进程 查找进程占用的端口号等 或者像 WMI 库之类的东西 看一下JNA https github com twall jna 这是与本机代码通信的 100 纯 java 方式 他们有一
  • 如何抑制 Delphi DataSnap 错误消息对话框?

    我们在 Windows 2003 Server 上运行 DataSnap Delphi 2009 应用程序 DataSnap 客户端和服务器位于同一台计算机上 通过 Borland Socketserver 使用 DCOM 客户端运行后台批