2012-01-07 3 views
0

Я не могу найти в google какую ссылку я должен использовать, чтобы иметь возможность использовать RegisterHotKey. Что это?Отсутствует ссылка на RegisterHotKey

И хотя на тему, следует ли использовать RegisterHotKey, если я пытаюсь создать приложение, которое прослушивает комбинацию клавиш в фоновом режиме?

ответ

3

Вам нужен DllImport, а не только ссылка. Вы можете найти тонн больше информации at pinvoke.net.

Короче говоря, если добавить:

[DllImport("user32.dll")] 
private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc); 

где-то в вашей программе, единственный оставшийся Хитрая часть придумывая hWnd регистрироваться для обработки ключа. Образец кода, связанный с pinvoke.net выше, должен помочь вам использовать DllImport.

+0

Вот моя проблема. Благодарю. – HelpNeeder

1

Вот что вам нужно будет использовать функцию RegisterHotkey из C#:

/// <summary> The RegisterHotKey function defines a system-wide hot key </summary> 
/// <param name="hwnd">Handle to the window that will receive WM_HOTKEY messages generated by the hot key.</param> 
/// <param name="id">Specifies the identifier of the hot key.</param> 
/// <param name="fsModifiers">Specifies keys that must be pressed in combination with the key specified by the 'vk' parameter in order to generate the WM_HOTKEY message.</param> 
/// <param name="vk">Specifies the virtual-key code of the hot key</param> 
/// <returns><c>true</c> if the function succeeds, otherwise <c>false</c></returns> 
/// <seealso cref="http://msdn.microsoft.com/en-us/library/ms646309(VS.85).aspx"/> 
[DllImport("user32.dll", SetLastError = true)] 
[return: MarshalAs(UnmanagedType.Bool)] 
static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); 
Смежные вопросы