2013-02-08 2 views
1

Я работаю над приложением C#, которое состоит из некоторых контекстных меню, которые имеют возможность общаться с моим сайтом через WebClient(). Параметры работают при нажатии.Ярлыки клавиш для вызова контекстных меню

Как только мое приложение открыто, оно остается открытым в лотке, и оно не отображается на панели задач/панели инструментов (панель внизу, где остаются открытые программы). Это основное приложение, которое работает непрерывно.

Существует раздел в контекстном меню под названием Загрузить, который включает в себя Загрузить с компьютера и окна скриншота. Это два элемента, к которым я хочу получить доступ с помощью сочетаний клавиш. Не имеет значения, где пользователь, как только он нажимает на клавиатурные клавиши, он вызывает событие приложения _Click для определенного контекстного меню.

Заключительный вопрос: Как сделать глобальных ярлыки клавиатуры, чтобы вызвать некоторое контекстное меню пункт _Click события?

Было бы хорошо, если кто-то может объяснить немного шире, как этого достичь. Я нахожусь на C# в течение короткого времени (1 месяц обучения, 2 недели, используя его), и у меня возникли проблемы с пониманием кода, только что вставленного здесь.

Это один из событий щелчка я хочу связать с помощью сочетания клавиш:

private void menu_upload_file_Click(object sender, EventArgs e) 
{ 
    DialogResult dialogOpened = openFileDialog1.ShowDialog(); 
    if (dialogOpened == DialogResult.OK) 
    { 
     string filename = openFileDialog1.FileName; 
     this.sendToIMGit(filename); 
    } 
} 

Спасибо.

+0

Я считаю, что вы не можете сделать что-нибудь подобное из коробки. Это потребует от вас подключения к устройству ввода (клавиатура в этом случае). Фактически вы можете получить доступ только к переднему окну или задать сообщение в фоновом окне. Вы должны проверить [MSDN] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms632590 (v = vs.85) .aspx) для того, как работает передача сообщений Windows. –

ответ

1

Чтобы создать глобальную горячую клавишу, вам понадобится «клавиатурный крючок».

См. this question.

+0

Благодарим вас за ответ. К сожалению, предоставление мне такого класса не поможет мне идти дальше из-за отсутствия опыта, который у меня есть с C#, я все еще под процессом, разбирающим основы и концепцию работы C#. Поэтому, если вы не возражаете пытаться объяснить код, я бы очень признателен. – Aborted

+0

Хорошо, тогда вы, конечно, будете погружаться в глубокий конец. Этот класс обертывает некоторые вызовы Win32: это вызовы более низкого уровня, которые операционная система Windows предлагает для собственных (обычно C++) приложений. Лучше всего, если вы не сможете работать с кодом, нужно было бы найти класс клавиатуры, который более аккуратно обертывает эту сложность для вас. –

+0

Я думал о том же - используя этот класс из вопроса, с которым вы связались, и я также знаю, что с моими текущими знаниями я не достиг бы такой сложной задачи, даже если использовать этот класс для меня довольно проблематично. Не могли бы вы показать мне пример использования этого класса? И этому классу также не хватает чего-то, на что был дан ответ, что означает, что он не является полным, если я просто скопирую его. – Aborted