У меня есть приложение C # winforms, которое работает в фоновом режиме, прислушиваясь к нажатию горячих клавиш. Когда горячая клавиша нажата, моя форма выглядит кратко. Форма всегда запущена, но устанавливается на скрытое, пока не получит событие горячей клавиши, после чего для свойства visible установлено значение true. Код выглядит так:
void hook_volumeDown(object sender, KeyPressedEventArgs e)
{
this.Visible = true;
}
Следует отметить, что самое верхнее свойство этой формы установлено в true.
Действительно странная часть: после того, как мое приложение на C # украло фокус из другого приложения, оно никогда не сделает это снова. Например: я запускаю свое приложение, а затем запускаю какое-то приложение, такое как Team Fortress 2. Затем нажимаю горячую клавишу. Team Fortress 2 сворачивается, и я вижу свою форму. Затем, однако, я могу восстановить TF2 и снова нажать мою горячую клавишу, сколько захочу (с желаемым эффектом), и TF2 останется сфокусированным.
В любом случае, я ищу способ это исправить. Я нашел много вопросов, касающихся подобных проблем, но все они связаны с созданием / запуском новой формы, а не с тем, чтобы сделать видимую существующую (если я что-то пропустил). Я мог бы переделывать приложение, чтобы создавать новую форму каждый раз, когда она мне понадобится, но это повлечет за собой создание еще одной формы, которая будет все время невидимой, просто чтобы ждать событий горячих клавиш, поэтому я бы предпочел оставить все как есть. *
Есть идеи?