В настоящее время я пишу программу на C#, которая в основном функционирует как сторожевой таймер для сторонней программы: если трафик падает ниже определенного значения, процесс уничтожается, а затем перезапускается [с использованием простого taskkill /im
].
Это работает отлично. хорошо, за одним исключением - если программа свернута в системный трей, она не будет реагировать на taskkill /im
, и вам придется принудительно завершить ее с помощью taskkill /f /im
.
Как можно догадаться, это далеко не лучший способ завершения программы. Поэтому в настоящее время я ищу способ получить доступ к системному трею Windows и в основном выполнить щелчок по программе / вызвать метод, чтобы развернуть его до нормального состояния.
Я думал о том, чтобы буквально имитировать щелчок на трее, но обнаружил, что этот метод является неточным и непредсказуемым.
Есть ли другой способ добиться этого [например, с помощью системного API]?
Спасибо!
Process
к работающему exe, а затем вызватьCloseMainWindow()
что, насколько я понимаю, ~ эквивалентно нажатиюX
в главном окне. - person Quantic   schedule 12.12.2016