2012-01-07 8 views
0

Je ne trouve pas sur google la référence que je dois utiliser pour pouvoir utiliser RegisterHotKey. Qu'Est-ce que c'est?Référence manquante à RegisterHotKey

Et sur le sujet, dois-je utiliser RegisterHotKey si j'essaie de créer une application qui écoute la combinaison de touches en arrière-plan?

Répondre

3

Vous avez besoin d'un DllImport, pas seulement d'une référence. Vous pouvez trouver des tonnes plus d'informations at pinvoke.net.

En bref, si vous ajoutez:

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

quelque part dans votre programme, la seule partie restante délicate est à venir avec le hWnd pour vous inscrire pour gérer la clé. L'exemple de code lié à pinvoke.net ci-dessus devrait vous aider à utiliser le DllImport.

+0

Voilà mon problème. Merci. – HelpNeeder

1

Voici ce que vous devez utiliser la fonction RegisterHotKey de 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); 
Questions connexes