我目前正在編寫基本上充當第三方程序的看門狗的C#程序:如果通信量低於某個值,則該進程被終止並重新啓動[使用簡單的taskkill /im
]。
這是工作得很好,只有一個例外 - 如果程序最小化到系統托盤,它不會響應taskkill /im
,你必須用taskkill /f /im
強制終止它。C#控制系統托盤中的第三方程序
正如人們所猜測的,這並不是結束程序的最佳方法。所以我目前正在尋找一種方法來訪問Windows系統托盤,並基本上執行一個程序點擊/調用一種方法,使其恢復到正常狀態。
我曾想過在字盤上模擬點擊,但發現這種方法是不準確和不可預測的。
有沒有另一種方法來完成這個[例如使用系統api]?
謝謝!
如果第三方程序沒有任何關閉確認對話框,則可能是將一個Process對象附加到運行的exe然後調用CloseMainWindow()(https://msdn.microsoft.com /en-us/library/system.diagnostics.process.closemainwindow(v=vs.110).aspx),據我所知,它相當於單擊主窗口上的「X」。 – Quantic