我有一个Delphi 2007应用程序,它在大多数机器上工作正常。 Windows版本,但现在对四个客户表现出以下行为。
应用程序短暂闪现一点UI(太快无法读取)。它似乎不是整个主窗口;也许只是一个消息窗口等?然后它就不再可见了。应用程序未列在任务管理器的“应用程序”选项卡上;必须从“进程”选项卡中删除它。
上述情况偶尔发生在大多数客户身上,但始终发生在一个客户(运行Windows 10;其他客户是Windows 7& 8)上 - 因此该客户根本无法运行该应用程序(他们直到最近才运行它。)
不幸的是我们不能在内部复制这种行为,因此我发送了大量使用CodeSite消息调用的应用程序的诊断版本。 CodeSite日志显示应用程序在Application.Run中挂起,但是没有调用mainform的事件(我已经使用CodeSite消息调用对它们进行了全部检测),因此挂起必须在消息循环处理中很早发生。
因为问题仅出现在远程用户的计算机上,所以我无法使用调试器逐步完成。尝试调试这个的最佳方法是什么?
我想在消息循环中添加PeekMessage()等调用并通过CodeSite输出这些调用以查看我是否可以在挂起中找到哪些消息结果,但是不知道如何从应用程序中完成.Run是Forms.pas系统的VCL源代码。
我很感激任何想法。