簡體   English   中英

Windows Forms C#程序:如何檢查按鈕狀態(啟用/禁用或可見/隱藏)?

[英]Windows Forms C# Program: How to check button status (enabled/disabled or visible/hidden)?

我有一個程序,如果出錯,它將停止運行。 當它停止運行時,將啟用“開始”按鈕,而禁用“停止”按鈕。 程序運行時(單擊“開始”后),“開始”按鈕禁用。

我的目標是編寫一個程序,該程序每隔2分鍾檢查一次“開始”按鈕的狀態,並在啟用“開始”按鈕時發送SMTP電子郵件。 因此讓我知道程序何時停止運行。

我已經可以使用FindWindow查找程序,但是我無法找到按鈕,更不用說讓我的程序區分啟用還是禁用了。

使用Spy ++時,按鈕的句柄為000A0B0A。 按鈕啟用后的樣式為54000000; 禁用它是5C000000。 程序或窗體/窗口句柄是00050B2C。

我的問題是:我可以使用什么命令來檢查特定按鈕的樣式(手柄00A0B0A)?

聽起來您通常需要在程序中添加可觀察性,以便您可以監視其狀態(運行,停止,錯誤等)。

我建議使用一種不依賴於UI的不同(可能更簡單的方法),該UI將來可能會發生變化,並且在將來您希望觀察有關您的應用程序的不同信息時可能具有更大的可擴展性。

您為什么不改為在錯誤時從程序中觸發狀態事件? 從產品中有幾種不同的方法可以做到這一點(wcf,遠程處理,寫入事件查看器等),並讓外部應用程序注冊這些事件並采取相應的措施(例如發送電子郵件)?

一開始可能會需要一些額外的工作(盡管我不確定,因為您已經遇到了方法上的問題,編寫一個簡單的觸發事件的wcf服務並不需要花費很多時間),但我認為值得將來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM