2015-04-05 4 views
0

я начал на мини-проект в C#, который был просто невидимая (или, по крайней мере, невероятно малы) WinForm, который открыл приложение моего выбора, когда я использовал некоторые комбинации горячих клавиш (например, Alt + num3 открыл The Sims 4) , Я бросил проект, когда понял, что он будет работать только тогда, когда «невидимая форма» была открыта и выбрана на панели задач, где я этого не хотел. Я недавно сделал мышь спазма шалость для моего брата на апрель День Дураков и использовали следующие три строки, чтобы скрыть форму:Какая часть моего кода блокирует комбинации горячих клавиш?

this.Hide(); //hides the form 
this.Text = null; //hides the application from the task manager 
this.ShowInTaskbar = false; //hides the application from the taskbar 

я пошел обратно в горячую клавишу пусковой и поместить эти три (за исключением диспетчера задач один) в событие Form1_Load в главном коде. Когда я начал отлаживать, я заметил, что они действительно скрывали форму, но комбинации «горячих клавиш» не отвечали. Я спрашиваю: 1) какая из двух строк [1 и 3] вызывает этот конфликт и 2) если смогу, как я могу это решить?

Спасибо за ваше время.

Примечание: Да, я знаю, что вы можете создавать фоновые приложения с использованием шаблона службы Windows, но я слышал, что он несовместим с тем, что я использую, Visual C# 2010 Express. Я бы использовал его иначе.

+0

Когда вы скрываете форму, вы удалите это фокус ввода. Чтобы перехватить все события клавиатуры, вам нужно получить немного более низкий уровень, например, используя: '' SetWindowsHookEx() '', как описано, например. здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/ms644985(v=vs.85).aspx – BitTickler

ответ

1

его не код, любой ключ не будет зарегистрирован, если вы используете его, пока форма находится в фокусе (на самой форме), если вам нужно что-то ответить на глобальные события клавиатуры и мыши, тогда вам нужно использовать окна крючки:

Processing Global Mouse and Keyboard Hooks in C#

+0

Спасибо, я смог это исправить. –

+0

Пожалуйста, отметьте, что на вопрос ответили. – Ronny

Смежные вопросы