Community
Inventor Programming - iLogic, Macros, AddIns & Apprentice
Inventor iLogic, Macros, AddIns & Apprentice Forum. Share your knowledge, ask questions, and explore popular Inventor topics related to programming, creating add-ins, macros, working with the API or creating iLogic tools.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Hook mouse click in Inventor.

0 REPLIES 0
Reply
Message 1 of 1
yuzeaa
146 Views, 0 Replies

Hook mouse click in Inventor.

Firstly, I don't want to use mouse events. I want to create a global hook in Inventor so that I can customize the desired functionality as a shortcut. Whenever I press the mouse middle button at any time, its behavior will be determined by the current document environment and some other conditions.Is that possible?

Following codes crashed in Inventor but worked in windows forms.

Imports System.Runtime.InteropServices
Public Class ThisRule
	
    Private Delegate Function MouseHookDelegate(nCode As Integer, wParam As IntPtr, lParam As IntPtr) As IntPtr

    <DllImport("user32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)>
    Private Overloads Shared Function SetWindowsHookEx(idHook As Integer, HookProc As MouseHookDelegate, hInstance As IntPtr, wParam As Integer) As IntPtr
    End Function

    <DllImport("user32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)>
    Private Overloads Shared Function CallNextHookEx(idHook As IntPtr, nCode As Integer, wParam As IntPtr, lParam As IntPtr) As IntPtr
    End Function

    <DllImport("user32.dll", CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)>
    Private Overloads Shared Function UnhookWindowsHookEx(idHook As IntPtr) As Boolean
    End Function

    Private Const WH_MOUSE_LL As Integer = 14
    Private Const WM_MOUSEMOVE As Integer = &H200
    Private Const WM_LBUTTONDOWN As Integer = &H201
    Private Const WM_LBUTTONUP As Integer = &H202
    Private Const WM_RBUTTONDOWN As Integer = &H204
    Private Const WM_RBUTTONUP As Integer = &H205
    Private Const WM_MBUTTONDOWN As Integer = &H207
    Private Const WM_MBUTTONUP As Integer = &H208

    Private mouseHook As IntPtr
    Private mouseDelegate As MouseHookDelegate

    Private Function MouseHookCallback(nCode As Integer, wParam As IntPtr, lParam As IntPtr) As IntPtr
        If nCode >= 0 AndAlso wParam = New IntPtr(WM_MBUTTONDOWN) Then
            MessageBox.Show("Middle mouse button pressed!")
        End If

        Return CallNextHookEx(mouseHook, nCode, wParam, lParam)
    End Function

    Private Sub StartHook()
        mouseDelegate = New MouseHookDelegate(AddressOf MouseHookCallback)
        mouseHook = SetWindowsHookEx(WH_MOUSE_LL, mouseDelegate, IntPtr.Zero, 0)
    End Sub

    Private Sub StopHook()
        UnhookWindowsHookEx(mouseHook)
    End Sub
	
    Private Sub main
        StartHook()
    End Sub
End Class

 

0 REPLIES 0

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Technology Administrators


Autodesk Design & Make Report