Results 1 to 4 of 4

Thread: HotkeyManager Class

  1. #1

    Thread Starter
    PowerPoster VBDT's Avatar
    Join Date
    Sep 2005
    Location
    CA - USA
    Posts
    2,922

    HotkeyManager Class

    The HotkeyManager class makes it easy to set global hotkeys for applications. It is a wrapper class that raises a HotkeyPressed event whenever a registered hotkey by the HotkeyManager class is pressed. The class keeps a collection of the registered hotkeys (in a Hotkey data type), and it is available to the developer through the Hotkeys property of the HotkeyMananger object. The HotkeyManager can be used to register, unregister, or replace (registered by the HotkeyManager) hotkeys.

    Background:

    To use (create) a HotkeyManager object, you should pass a valid window (Form) within the project as an argument to its constructor method. The HotkeyManager uses two (RegisterHotKey and UnregisterHotKey) API methods to register, unregister, and replace hotkeys. Most of the methods of HotkeyManager take an argument of type Hotkey.

    On the other hand, the Hotkey structure has very useful methods too, such as ToString which returns the string representation of the hotkey (example: Ctrl+H) and many properties (as System.Windows.Forms.Keys).



    Using the code:

    Here is an example of how to use the HotkeyManager class:
    Code:
    Public Class Form1
    
        'Declaration of HotkeyManager object.
        Dim WithEvents hkM As HotkeyManager
    
        Private Sub Form1_Load(ByVal sender As Object, _
                    ByVal e As System.EventArgs) Handles Me.Load
            'Creat a new instance of HotkeyManager
            'objec and pass this form as its argument.
            Me.hkM = New HotkeyManager(Me)
        End Sub
    
        Private Sub RegisterButton_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles RegisterButton.Click
            Try
                'Create a Hotkey object with its Id = 100 and value = Alt+G.
                Dim hk As New Hotkey(100, Keys.Alt Or Keys.G)
                'Register the Alt+G.
                Me.hkM.RegisterHotKey(hk, True)
            Catch ex As Exception
                'An exception is throw, show the exception message.
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    
        Private Sub Form1_FormClosing(ByVal sender As Object, _
                ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                Handles Me.FormClosing
            If Me.hkM IsNot Nothing Then
                'Dispose the HotkeyManager objec when the application is exiting.
                'This method will unregister all hotkeys for this HotkeyManager.
                Me.hkM.Dispose()
            End If
        End Sub
    
        Private Sub ReplaceButton_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles ReplaceButton.Click
            Try
                'Create a Hotkey object with its Id = 100 and value = Shift+B
                Dim hk As New Hotkey(100, Keys.Shift Or Keys.B)
                'Replace previously registered hotkey 
                'with the Id = 100 (Alt+G) with Shift+B.
                Me.hkM.Replace(hk, True)
            Catch ex As Exception
                'An exception is throw, show the exception message.
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    
        Private Sub UnregisterButton_Click(ByVal sender As System.Object, _
                ByVal e As System.EventArgs) Handles UnregisterButton.Click
            Try
                'Unregister previously registered hotkey with the Id = 100.
                Me.hkM.UnregisterHotKey(100, True)
            Catch ex As Exception
                'An exception is throw, show the exception message.
                MessageBox.Show(ex.Message)
            End Try
        End Sub
    
        Private Sub hk_HotkeyPressed(ByVal sender As Object, _
                ByVal e As HotkeyEventArgs) Handles hkM.HotkeyPressed
            'A hotkey is pressed, show the hotkey in a lable.
            Me.HotkeyLabel.Text = e.Hotkey.Name
        End Sub
    End Class
    Download the latest version here
    Attached Files Attached Files
    Last edited by VBDT; Apr 14th, 2016 at 06:50 PM. Reason: Change Code Tags

  2. #2
    Hyperactive Member
    Join Date
    Mar 2009
    Posts
    462

    Re: HotkeyManager Class

    thanks this thing is the Best!

  3. #3
    Pro Grammar chris128's Avatar
    Join Date
    Jun 2007
    Location
    England
    Posts
    7,604

    Re: HotkeyManager Class

    Nice to see someone finally made this, I'm sick of explaining how to use the RegisterHotKey API to people
    My free .NET Windows API library (Version 2.2 Released 12/06/2011)

    Blog: cjwdev.wordpress.com
    Web: www.cjwdev.co.uk


  4. #4
    Lively Member sk8er_boi's Avatar
    Join Date
    Jun 2010
    Posts
    65

    Re: HotkeyManager Class

    for some reason this project does not load in my vb 2005 , says xyz.vbpoj not not make sure it exists <blah blah>..."

    any idea why ? is this VB 2008 ?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width