Отсутствует ссылка на RegisterHotKey - PullRequest
0 голосов
/ 07 января 2012

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

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

Ответы [ 2 ]

3 голосов
/ 07 января 2012

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

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

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

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

1 голос
/ 07 января 2012

Вот что вам нужно, чтобы использовать функцию 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);
...