Два комментария:
Во-первых, я бы избавился от требования "зависания". Если вы используете стандартный метод добавления приложения на панель задач, например System.Windows.Forms.NotifyIcon, вы должны открыть окно приложения при двойном щелчке. При желании вы также можете добавить контекстное меню правой кнопкой мыши. Таким образом, пользователь может использовать winkey + B, чтобы перейти в системный трей, и влево / вправо, чтобы найти свой значок, ввести, чтобы дважды щелкнуть мышью, или клавишу приложения, чтобы щелкнуть правой кнопкой мыши.
Если по какой-то причине это не работает в вашем конкретном сценарии. Я бы порекомендовал проверить, запущено ли ваше приложение в событии Application_Start (это работает только в том случае, если вы хотите один экземпляр вашего приложения в любое время). Таким образом, если пользователь запускает приложение, а экземпляр приложения уже открыт, просто восстановите состояние окна и выведите его на передний план.
Затем во время установки вы можете установить стандартный ярлык Windows на рабочем столе или в меню «Пуск» и установить горячую клавишу в свойствах ярлыка (все это можно сделать в коде). Затем, когда пользователь вводит комбинацию клавиш, она запускает приложение, запускается Application_Start, он видит, что уже запущена версия (в панели задач), и выводит ее на передний план. Таким образом, достижение того же результата более стандартным способом.
Надеюсь, я правильно понял, чего вы хотите достичь.