0

我有一个程序,如果出错,将停止运行。当它停止运行时,“开始”按钮被启用,“停止”按钮被禁用。程序运行时(单击“开始”后),“开始”按钮禁用。

我的目标是编写一个程序,每隔一段时间(2 分钟)检查“开始”按钮的状态,并在“开始”按钮启用时发送 SMTP 电子邮件。从而让我知道程序何时停止运行。

我已经能够使用 FindWindow 找到该程序,但我无法找到该按钮,更不用说让我的程序区分启用与禁用。

使用 Spy++,按钮的句柄是 000A0B0A。启用时按钮的样式为 54000000;禁用它是 5C000000。程序或窗体/窗口句柄是 00050B2C。

我的问题是:我可以使用什么命令(如果有)来检查该特定按钮的样式(句柄 00A0B0A)?

4

1 回答 1

4

听起来您通常需要为程序添加可观察性,以便您可以监视其状态(运行、停止、错误等)。

我会建议一种不同的(并且可能更简单的方法),它不依赖于未来可能会发生变化的 UI,并且在您希望在未来观察应用程序的不同信息的情况下,它可能更具可扩展性。

你为什么不从你的程序中触发状态事件呢?产品有几种不同的方法(wcf、远程处理、写入事件查看器等)并让您的外部应用程序注册这些事件并采取相应措施(例如发送电子邮件)?

一开始可能需要做一些额外的工作(尽管我不确定,因为您的方法已经遇到问题,并且编写一个触发事件的简单 wcf 服务并不需要太多时间),但我认为值得它在未来。

于 2010-11-29T21:23:46.333 回答