我有一个错误的程序会停止运行。当它停止运行时,“启动”按钮被启用,“停止”按钮被禁用。程序运行时(点击“开始”后),“开始”按钮禁用。
我的目标是编写一个程序,在间隔(2分钟)内,检查“开始”按钮的状态,并在“启动”按钮启用时发送SMTP电子邮件。因此,让我知道程序何时停止运行。
我已经能够使用FindWindow找到该程序,但我找不到该按钮,更不用说让我的程序区分启用与禁用。
使用Spy ++,按钮的句柄为000A0B0A。启用按钮时的样式为54000000;禁用它是5C000000。程序或窗体/窗口,句柄是00050B2C。
我的问题是:我可以用什么命令来检查特定按钮的样式(处理00A0B0A)?
答案 0 :(得分:4)
听起来你通常需要的是为程序添加可观察性,以便监视其状态(运行,停止,错误等)。
我建议使用一种不同的(可能更简单的方法),它不依赖于将来可能发生变化的UI,并且在您希望在应用程序中观察到有关应用程序的不同信息的情况下可能更加可扩展。将来
为什么不在出错时从程序中触发状态事件?有几种不同的方法可以从产品(wcf,远程处理,写入事件查看器等)执行此操作,并让外部应用程序注册这些事件并采取相应措施(例如发送电子邮件)?
一开始可能会有一些额外的工作(虽然我不确定,因为你已经遇到了你的方法的问题,并且编写一个简单的wcf服务来触发事件并不需要那么多时间)但是我认为将来值得。