德尔福 - 如何找到定期"鬼"托盘气球弹出窗口的来源?

ros*_*mcm 1 delphi trayicon hint delphi-2006 popup-balloons

我有一个D2006应用程序,通过托盘气球提示通知各种事件.每隔一段时间,但不经常 - 比如说应用程序的10次调用中的1次 - ,其中一个提示决定它会一次又一次地弹出......永远.唯一阻止它的是关闭应用程序.

如果应用程序发出另一个气球int,它将替换幻像提示,但在新提示超时后,幻像提示返回.同样,如果我关闭幻像提示,它会立即返回.

我已经验证了创建提示的代码没有被重复调用.暗示在某处更深入肠道.

    MainForm.TrayIcon1.BalloonFlags   := Flag ;
    MainForm.TrayIcon1.BalloonTitle   := Title ;
    MainForm.TrayIcon1.BalloonHint    := Message ;
    MainForm.TrayIcon1.BalloonTimeout := Delayms ;
    MainForm.TrayIcon1.ShowBalloonHint ;
Run Code Online (Sandbox Code Playgroud)

Chr*_*ton 5

为气球提示创建一个公共入口点.即包装函数.与要显示的文本一起,包含另一个名为WhereCalledFrom的字符串参数,并使用它来标识应用程序的哪个部分正在调用提示.
在包装器中,记录所有提示调用(到.txt文件,GExperts调试器,Windows输出调试字符串,Windows事件日志等)以记录日期/时间,WhereCalledFrom和消息.这应该让你很容易跟踪它.