Найкраще рішення, яке я знайшов для цього, - це припинити реагувати на вхід (і, ймовірно, призупинити вашу гру також), якщо вона не працює.
Ви можете перевірити Game.IsActiveабо підключити Activatedі Deactivatedподії.
Є один незначний недолік - я б просто вважав це помилкою в рамках - гра завжди починається в активному стані, навіть якщо гра фактично не активна, коли вона починає працювати. (Наприклад: ви клацаєте в іншому вікні між запуском гри та фактичною початком гри.)
Ви могли б обходити це, перевіряючи, що таке активне вікно, коли ваша гра починається, ймовірно, використовуючи GetForegroundWindow. Або ви можете просто не турбуватися про це - це час від часу трапляється як розробник, але я підозрюю, що це не дуже впливає на кінцевих користувачів.