2013-08-23 3 views
0

У меня есть один класс для регистрации/отмены регистрации горячей клавиши. Он отлично работает, когда приложение запускается с событием Form Load.Горячая клавиша не работает при загрузке формы

private Hotkey myHotKey; 
private IntPtr thisWindow; 
    private void Form1_Load(object sender, EventArgs e) 
     { 
      thisWindow = FindWindow(null, "Form1"); 
      myHotKey = new Hotkey(thisWindow); 
      myHotKey.RegisterHotKeys(); 

     } 

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

public Form1() 
{ 
    InitializeComponent(); 
    notifyIcon1.ContextMenuStrip = contextMenuStrip1; 
    notifyIcon1.Click += notifyIcon1_Click; 
    notifyIcon1.DoubleClick += notifyIcon1_DoubleClick; 
    openToolStripMenuItem.Click += openToolStripMenuItem_Click; 
    exitToolStripMenuItem.Click += exitToolStripMenuItem_Click; 
    Notify("Application Name", "Application Started...", 1000); 
    thisWindow = FindWindow(null, "Form1"); 
    myHotKey = new Hotkey(thisWindow); 
    myHotKey.RegisterHotKeys(); 
} 

Не могли бы вы направить меня, что я делаю неправильно. Спасибо

+0

Смотрите мой ответ здесь: http://stackoverflow.com/questions/15434505/key-capture-using-global-hotkey-in-c-sharp/15434675 # 15434675 –

+0

'FindWindow (null," Form1 ")' Используя это, вы пытаетесь захватить дескриптор текущей формы? Почему бы не использовать 'this.Handle'? –

ответ

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