Solved

Application wide Hotkey

Posted on 2009-05-04
2
539 Views
Last Modified: 2012-05-06
Hi experts,

We have developed an application which is in SDI form and has multiple Forms using VB 2005 with .net framework 2.0. We need to provide hotkeys to perform specific actions. This hotkey may be pressed in any of the forms throughout the application. The system should be able to recognize this key press is required to execute some code.

In the above context i have done some research and got a solution which is very close to the one which i require -
www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_21584180.html

The limitation in the solution above is that it works system wide. When my application is minimized and user presses the hotkey, my application still responds to that, which is NOT required.

How can this be achieved?

The hotkey we are trying to use are all the function keys and other keys in combination with CTRL key.

Ketan.

0
Comment
Question by:s_monani
2 Comments
 
LVL 85

Accepted Solution

by:
Mike Tomlinson earned 125 total points
ID: 24295661
If you want a "HotKey" across all forms, but ONLY in the application, then use IMessageFilter:
http://msdn2.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx

Simple example that traps Ctrl-F1, Ctrl-F2, and Ctrl-F3:
Public Class Form1
 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Application.AddMessageFilter(New MyMessageFilter)

    End Sub
 

    Public Class MyMessageFilter

        Implements IMessageFilter
 

        Private Const WM_KEYDOWN As Integer = &H100
 

        Public Function PreFilterMessage(ByRef m As System.Windows.Forms.Message) As Boolean Implements IMessageFilter.PreFilterMessage

            Select Case m.Msg

                Case WM_KEYDOWN ' (Check for Ctrl being down...w/o the Alt key down)

                    If My.Computer.Keyboard.CtrlKeyDown AndAlso (Not My.Computer.Keyboard.AltKeyDown) Then

                        Select Case m.WParam.ToInt32

                            Case Keys.F1

                                MessageBox.Show("Ctrl-F1")

                                Return True
 

                            Case Keys.F2

                                MessageBox.Show("Ctrl-F2")

                                Return True
 

                            Case Keys.F3

                                MessageBox.Show("Ctrl-F3")

                                Return True
 

                            ' etc...
 

                        End Select

                    End If
 

            End Select
 

            Return False

        End Function

    End Class
 

End Class

Open in new window

0
 
LVL 1

Author Closing Comment

by:s_monani
ID: 31577463
Thanks a lot, the code exactly what i needed.
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

Recently while returning home from work my wife (another .NET developer) was murmuring something. On further poking she said that she has been assigned a task where she has to serialize and deserialize objects and she is afraid of serialization. Wha…
In my previous article (http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_3.x/A_4362-Serialization-in-NET-1.html) we saw the basics of serialization and how types/objects can be serialized to Binary format. In this blog we wi…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now