Click here to Skip to main content
15,908,115 members
Home / Discussions / Visual Basic
   

Visual Basic

 
AnswerRe: My code is showing syntax error in insert into statement can you please help me with a solution guys Pin
Richard MacCutchan31-Oct-18 6:54
mveRichard MacCutchan31-Oct-18 6:54 
Questionvisual zkteco Pin
Member 1402998229-Oct-18 11:38
Member 1402998229-Oct-18 11:38 
AnswerRe: visual zkteco Pin
Richard MacCutchan30-Oct-18 5:21
mveRichard MacCutchan30-Oct-18 5:21 
QuestionHow to create an custom error message box , that I can used for all my forms using vb.net Pin
Member 140121708-Oct-18 8:48
Member 140121708-Oct-18 8:48 
AnswerRe: How to create an custom error message box , that I can used for all my forms using vb.net Pin
Mycroft Holmes8-Oct-18 11:31
professionalMycroft Holmes8-Oct-18 11:31 
AnswerRe: How to create an custom error message box , that I can used for all my forms using vb.net Pin
JR21211-Oct-18 10:35
JR21211-Oct-18 10:35 
QuestionHow to add a contact in google contacts from vb 2010 Pin
_nixz_7-Oct-18 22:04
_nixz_7-Oct-18 22:04 
AnswerRe: How to add a contact in google contacts from vb 2010 Pin
Richard MacCutchan7-Oct-18 22:57
mveRichard MacCutchan7-Oct-18 22:57 
GeneralRe: How to add a contact in google contacts from vb 2010 Pin
_nixz_9-Oct-18 3:06
_nixz_9-Oct-18 3:06 
QuestionCreating random access file with visual basic.net Pin
Member 139824717-Oct-18 11:48
Member 139824717-Oct-18 11:48 
AnswerRe: Creating random access file with visual basic.net Pin
Richard MacCutchan7-Oct-18 21:57
mveRichard MacCutchan7-Oct-18 21:57 
QuestionProblem with System.Text.Encoding, Solved Pin
mo14923-Oct-18 11:58
mo14923-Oct-18 11:58 
AnswerRe: Problem with System.Text.Encoding, Solved Pin
Eddy Vluggen4-Oct-18 2:15
professionalEddy Vluggen4-Oct-18 2:15 
QuestionCheck for changes on Windows form Pin
wjburke22-Oct-18 11:59
wjburke22-Oct-18 11:59 
AnswerRe: Check for changes on Windows form Pin
Eddy Vluggen2-Oct-18 21:49
professionalEddy Vluggen2-Oct-18 21:49 
SuggestionRe: Check for changes on Windows form Pin
Richard Deeming3-Oct-18 1:47
mveRichard Deeming3-Oct-18 1:47 
QuestionRe: Check for changes on Windows form Pin
dan!sh 3-Oct-18 2:09
professional dan!sh 3-Oct-18 2:09 
QuestionIndex and length must refer to a location within the string vb.net Pin
Victoryy Hisar Sitanggang2-Oct-18 4:14
Victoryy Hisar Sitanggang2-Oct-18 4:14 
AnswerRe: Index and length must refer to a location within the string vb.net Pin
Richard Deeming2-Oct-18 4:34
mveRichard Deeming2-Oct-18 4:34 
QuestionRegisterHotKey Pin
JR2122-Oct-18 1:58
JR2122-Oct-18 1:58 
Hi,

I use for some years this code that worked.
Public Class HotKey
        ' Windows API functions and constants
        Private Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Integer
        Private Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As IntPtr, ByVal id As Integer) As Integer
        Private Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Short
        Private Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal nAtom As Short) As Short

<pre>
    Public Const MOD_ALT As Integer = 1
    Public Const MOD_CONTROL As Integer = 2
    Public Const MOD_SHIFT As Integer = 4
    Public Const MOD_WIN As Integer = 8
    Private f As Form
    Public Enum EKeyModifier
        Neutral
        Alt
        Control
        Control_Alt
        Shift
        Shift_Alt
        Shift_Control
        Shift_Alt_Control
        Windows
        Win_Alt
        Win_Control
        Win_Control_Alt
        Win_Shift
        Win_Shift_Alt
        Win_Shift_Control
        Win_Shift_Alt_Control
        Norepeat = &H4000
    End Enum
    Private _Modifier As EKeyModifier
    Private _Key As System.Windows.Forms.Keys        ' the id for the hotkey
    Dim hotkeyID As Short
    Sub SDummy()
        MsgBox("Dummy routine ShortKey")
    End Sub
    Public Property Key() As System.Windows.Forms.Keys
        Get
            Return _Key
        End Get
        Set(ByVal value As System.Windows.Forms.Keys)
            UnregisterGlobalHotKey()
            RegisterGlobalHotKey(value, _Modifier, f)
            _Key = value
        End Set
    End Property
    Public Property Modifier() As EKeyModifier
        Get
            Return _Modifier
        End Get
        Set(ByVal value As EKeyModifier)
            UnregisterGlobalHotKey()
            RegisterGlobalHotKey(_Key, value, f)
            _Modifier = value
        End Set
    End Property

    ' register a global hot key
    Function RegisterGlobalHotKey(ByVal hotkey As EKeyModifier, ByVal modifiers As Integer, ByVal frm As Form) As Boolean
        Try
            f = frm
            ' use the GlobalAddAtom API to get a unique ID (as suggested by MSDN docs)
            'adapted code(obsolete)
            'Dim atomName As String = AppDomain.GetCurrentThreadId.ToString("X8") & Me.Name
            Dim th As New Threading.Thread(AddressOf SDummy)
            Dim value As Integer
            value = th.ManagedThreadId
            'end adapted
            Dim atomName As String = CStr(value) & "_HotKey"
            hotkeyID = GlobalAddAtom(atomName)
            If hotkeyID = 0 Then
                Throw New Exception("Unable to generate unique hotkey ID. Error code: " &
            System.Runtime.InteropServices.Marshal.GetLastWin32Error().ToString)
            End If
            _Key = hotkey
            _Modifier = modifiers
            ' register the hotkey, throw if any error

            If RegisterHotKey(frm.Handle, hotkeyID, modifiers, hotkey) = 0 Then
                Dim LastError As String = System.Runtime.InteropServices.Marshal.GetLastWin32Error.ToString
                Throw New Exception("Unable to register hotkey. Error code: " & LastError)
            End If
            Return True
        Catch ex As Exception
            ' clean up if hotkey registration failed
            UnregisterGlobalHotKey()
            Return False
        End Try
    End Function

    ' unregister a global hotkey
    Sub UnregisterGlobalHotKey()
        If hotkeyID <> 0 Then
            Try
                UnregisterHotKey(f.Handle, hotkeyID)
            Catch ex As Exception
            End Try
            ' clean up the atom list
            GlobalDeleteAtom(hotkeyID)
            hotkeyID = 0
        End If
    End Sub

    Protected Overrides Sub Finalize()
        UnregisterGlobalHotKey()
        MyBase.Finalize()
    End Sub
End Class</pre>

Now I want to use it again but my hotkey isn't working

I define the hotkey in the startup and check it in wndProc routine
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Hotkey = New Classes.HotKey
        If Not Hotkey.RegisterGlobalHotKey(Keys.F5, Classes.HotKey.EKeyModifier.Win_Alt, Me) Then
            MsgBox("Close key not registered")
        End If
    End Sub

<pre>
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    ' let the base class process the message
    MyBase.WndProc(m)

    ' if this is a WM_HOTKEY message, notify the parent object
    Const WM_HOTKEY As Integer = &H312
    If m.Msg = WM_HOTKEY Then
        ' do whatever you wish to do when the hotkey is pressed

        Dim key As Keys = ((m.LParam.ToInt64 >> 16) And &HFFFF) 'the charKey
        Dim modifier As Classes.HotKey.eKeyModifier = (m.LParam.ToInt64 And &HFFFF) 'Shift Alt Control and/or Windows key
        Select Case key.ToString
            Case "F5"
                EndToolStripMenuItem.PerformClick()
        End Select
    End If
End Sub</pre>

The WndProc function starts on other messages but not on the hotkey

Where am I wrong?

Thanks
Jan
AnswerRe: RegisterHotKey Pin
JR2126-Oct-18 12:53
JR2126-Oct-18 12:53 
QuestionProblems with SSLstream.Read (VB.NET/VS2017) Pin
Member 1185690428-Sep-18 21:58
Member 1185690428-Sep-18 21:58 
QuestionProblem with SHGetFolderPath(): Problem Closed. Pin
mo149228-Sep-18 11:30
mo149228-Sep-18 11:30 
AnswerRe: Problem with SHGetFolderPath(): Problem Closed. Pin
Richard MacCutchan28-Sep-18 21:45
mveRichard MacCutchan28-Sep-18 21:45 
GeneralRe: Problem with SHGetFolderPath(): Problem Closed. Pin
mo149228-Sep-18 23:44
mo149228-Sep-18 23:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.