У меня есть один класс для регистрации/отмены регистрации горячей клавиши. Он отлично работает, когда приложение запускается с событием 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();
}
Не могли бы вы направить меня, что я делаю неправильно. Спасибо
Смотрите мой ответ здесь: http://stackoverflow.com/questions/15434505/key-capture-using-global-hotkey-in-c-sharp/15434675 # 15434675 –
'FindWindow (null," Form1 ")' Используя это, вы пытаетесь захватить дескриптор текущей формы? Почему бы не использовать 'this.Handle'? –