2015-12-26 11 views
-2

Привет Я работаю над C# Windows App, которое использует комбинацию клавиш, например CTRL + A и CTRL + Z вне приложения (работает в фоновом режиме).Windows HotKey in C# App

Я пробовал RegisterHotKeys учебники, но у меня есть проблема. При нажатии CTRL + A выполняется только мой метод, и действие по умолчанию Windows никогда не выполняется. Я хочу выполнить первое действие Windows и только после этого действия выполнить мой метод для этого ключа.

Например:

CTRL+A 

1) Select All 

2) My code 

Некоторый код ниже:

private void mainForm_Load(object sender, EventArgs e) 
     { 
      ObjectsList = new List<Data>(); 

      thisWindow = FindWindow(null, "myform"); 

      RegisterHotKey(thisWindow, 1, (uint)fsKeyMod.Control, (uint)Keys.A); 

     } 


     private enum fsKeyMod 
     { 
      Control = 0x0002, 
     } 

     protected override void WndProc(ref Message keyPressed) 
     { 

      base.WndProc(ref keyPressed); 

      if (keyPressed.Msg == 0x0312) 
      { 
       Console.WriteLine("apasat cv..."); 
      } 

     } 

мне нужно решение как можно скорее. Спасибо!

+0

Вы пытаетесь перегружать глобальные сочетания клавиш? Если это так, подумайте о том, чтобы не делать этого вообще. Это приведет к тому, что большинство пользовательских пользовательских интерфейсов можно будет вообразить. – IInspectable

ответ

1

Даже если вы можете исправить это (например, с отправкой или отправкой сообщений), это, безусловно, не рекомендуется.

Лучше использовать уникальную комбинацию клавиш.