C#: Глобальные горячие клавиши
Всем привет!
Нужно реализовать в программе на шарпе винформс глобальные горячие клавиши, именно глобальные (прога в трее - не активна, но слушает свои горячие клавиши)
реализуется так (фрагмент):
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd,int id,int fsModifiers,int vlc);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
bool success = FrmMain.RegisterHotKey(this.Handle, this.GetType().GetHashCode(), frm.ShortcutInput1.Win32Modifiers, frm.ShortcutInput1.CharCode);
if (success)
{
TxtKeyEnumValue.Text = ((int)frm.ShortcutInput1.Keys).ToString();
StreamWriter writer = File.CreateText(Application.StartupPath + "\\HotkeyValue.txt");
writer.Write(TxtKeyEnumValue.Text);
writer.Close();
}
else
MessageBox.Show("Could not register Hotkey - there is probably a conflict. ", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
в инете полно примеров, даже проектов, но мне сложновато разобраться, нужно снабдить комментариями то что напишите, с возможностью задавать свои комбинации, проверять не занята ли та или иная комбинация другим приложением.
прикладываю макет проекта - http://dl.dropbox.com/u/77740218/BUFER/GlobalHotKeys.rar
в нем нужно повесить на 3 действия горячие кнопки, ну и в форме настроек задать другие хоткеи
Время не важно, приоритет на цене.
связь скайп ali_yab