<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Catching Keyboard enter key eventEvents in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/5682432#M50666</link>
    <description>&lt;P&gt;The code below is working fine for selecting 3 parts&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;' To suppress a part&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public Sub AssemblyCount()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Set reference to active document.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This assumes the active document is an assembly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oDoc As Inventor.AssemblyDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set oDoc = ThisApplication.ActiveDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim selset As SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim compOcc As ComponentOccurrence&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox ("Select a Part or a Subassembly")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until oDoc.SelectSet.Count = 3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Yield to other processes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set selset = oDoc.SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim obj As Object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each obj In selset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf obj Is ComponentOccurrence Then&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set compOcc = obj&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compOcc.Suppress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But&amp;nbsp;i want to select multiple parts until i hit enter button after hitting enter button all the selected parts must be suppressed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I tried the Application.onkey&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public enterWasPressed As Boolean&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;' To suppress a part&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public Sub AssemblyCount()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Set reference to active document.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This assumes the active document is an assembly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oDoc As Inventor.AssemblyDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set oDoc = ThisApplication.ActiveDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim selset As SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim compOcc As ComponentOccurrence&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox ("Select a Part or a Subassembly")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enterWasPressed = False&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until enterWasPressed = True&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Yield to other processes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.OnKey "{ENTER}", "recordEnterKeypress"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set selset = oDoc.SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim obj As Object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each obj In selset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf obj Is ComponentOccurrence Then&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set compOcc = obj&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compOcc.Suppress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sub recordEnterKeypress()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enterWasPressed = True&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;but i am getting runtime error '424' object required can anyone please help me to fix my issue&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;When i am searching in google i saw your post to use IMessageFilter to handle keyboard and mouse event.Can you please help me to fix my issue by writing the apt code for it. Since i am new to autodesk and i am not familiar with IMessageFilter i am asking you for the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;First i need to press a command button in the user form and then go to inventor to select the part or assemblies so that it can be suppressed on press of enter key&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 18 Jun 2015 09:50:46 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2015-06-18T09:50:46Z</dc:date>
    <item>
      <title>Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799168#M50652</link>
      <description>&lt;P&gt;Right now I am poking around to see whether there is possibility to catch events like KeyDown or MouseWheel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I assume they would be available either on the Editor (AutoDesk.AutoCAD.EditorInput.Editor) object or somewhere under the Application (AutoDesk.AutoCAD.ApplicationServices.Application). I saw event handlers like Editor.Rollover but attaching to it didn't bring me far.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Has anyone a clue to where to look? Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2013 20:15:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799168#M50652</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-07T20:15:31Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799199#M50653</link>
      <description>&lt;P&gt;There aren't any events that that correspond to keyboard and mouse input.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you can say more about what you're trying to accomplish, there may be other ways.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2013 20:36:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799199#M50653</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-07T20:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799221#M50654</link>
      <description>&lt;P&gt;Right... I had hoped I could use some free time to produce a command that would run pacman in the current document. Perhaps that's not entirely impossible but I'll leave it for some other time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Particularly, I thought a nice-to-have is a &lt;EM&gt;layer walker&lt;/EM&gt;, program logic that keeps only one layer turned on at a time, and uses a combination like ctrl+mouse wheel to run up and down through the list of layers.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;From what I have seen, this might be possible to some extent through custom keyboard shortcuts but I wouldn't go there before being sure there is nothnig that can be done from ObjectARX' side.&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2013 21:00:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799221#M50654</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-07T21:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799287#M50655</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1052889"&gt;@DiningPhilosopher&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;There aren't any events that that correspond to keyboard and mouse input.&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Forgive my curiosity, but while this is no Ctrl+MouseWheel Event handler, what's wrong with DoEvents(), and acedUsrBrk() to catch user input?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Quote:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"It's fairly common for developers to want to check for user input from time to time during long operations, especially to see whether the user wants to cancel the current activity. In VB you'd use DoEvents() to enable messages to be processed by the application's message loop and in ObjectARX you'd use acedUsrBrk().&lt;/P&gt;&lt;P&gt;So how to do this in .NET?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The answer is to use&amp;nbsp;&lt;A target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.imessagefilter.prefiltermessage.aspx"&gt;a message filter&lt;/A&gt;. This allows us to check on user-input events... we still call DoEvents, as with previous versions of VB, which allows user input events (such as keystrokes) to flow into our message filter function. We can then detect the events we care about, and filter them out, if necessary."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Mar 2013 22:08:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799287#M50655</guid>
      <dc:creator>BlackBox_</dc:creator>
      <dc:date>2013-03-07T22:08:40Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799503#M50656</link>
      <description>&lt;P&gt;You can use an IMessgeFilter to intercept windows messages, including mouse and keyboard events, but doing that continuously, as opposed to only doing some custom command would be extremely probelmatic since you can't tell what may be happening in AutoCAD from a windows message (for example, is there a dialog active, or is the user editing text, or is the user using the Properties Palette, etc.). so it would depend on if you wanted to do it during your custom command, or if you wanted to watch messages continuously while the user works in AutoCAD.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If it is the latter, see BlackBoxCadd's reply for a link to Kean's blog post showing how the IMessageFilter works.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 05:27:15 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799503#M50656</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-08T05:27:15Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799505#M50657</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@BlackBoxCAD wrote:&lt;BR /&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1052889"&gt;@DiningPhilosopher&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;There aren't any events that that correspond to keyboard and mouse input.&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Forgive my curiosity, but while this is no Ctrl+MouseWheel Event handler, what's wrong with DoEvents(), and acedUsrBrk() to catch user input?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Quote:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"It's fairly common for developers to want to check for user input from time to time during long operations, especially to see whether the user wants to cancel the current activity. In VB you'd use DoEvents() to enable messages to be processed by the application's message loop and in ObjectARX you'd use acedUsrBrk().&lt;/P&gt;&lt;P&gt;So how to do this in .NET?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The answer is to use&amp;nbsp;&lt;A target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.imessagefilter.prefiltermessage.aspx"&gt;a message filter&lt;/A&gt;. This allows us to check on user-input events... we still call DoEvents, as with previous versions of VB, which allows user input events (such as keystrokes) to flow into our message filter function. We can then detect the events we care about, and filter them out, if necessary."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html&lt;/A&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;What's wrong with it depends on whether the need is continuous or if it is transient (e.g., only while a certain command is running).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's why I asked the OP for more detail before going further..&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 05:32:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799505#M50657</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-08T05:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799514#M50658</link>
      <description>&lt;P&gt;Ok, I'll still have to go back to what BlackBoxCAD proposed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to have that continously present, but what I have come up with is that a command or a toolbar button can be created, that opens a modeless window. Then, this window can capture mouse wheel events and switch layers, regen the drawing...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If one wants to play ninja and hide this window from users, perhaps there is a way to make this window invisible and to make it follow the cursor until the first next click closes it. This would provide illusion that there is a command that does this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But, otherwise, the window could be operating cross document and cross command until it is closed.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 06:03:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799514#M50658</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-08T06:03:57Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799520#M50659</link>
      <description>&lt;P&gt;My post was not in any way intended to challenge the request for more information; instead it was simply in the hopes of gaining some level of understanding behind the seemingly absolute response you originally offered.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You seem to possess a vast knowledge of the .NET API, and I just wanted to express my appreciation for&amp;nbsp;&lt;SPAN&gt;your time in clarifying the topic further.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cheers&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 06:09:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799520#M50659</guid>
      <dc:creator>BlackBox_</dc:creator>
      <dc:date>2013-03-08T06:09:27Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799993#M50660</link>
      <description>&lt;P&gt;&lt;FONT face="georgia,palatino"&gt;&lt;EM&gt;"You seem to possess a vast knowledge of the .NET API, and I just wanted to express my appreciation for&amp;nbsp;your time in clarifying the topic further."&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;... I thought I recognized you Tony (&lt;EM&gt;DiningPhilosopher,&amp;nbsp;&lt;/EM&gt;&lt;EM&gt;TT, TheMaster&lt;/EM&gt;), by the accuracy, and&amp;nbsp;completeness&amp;nbsp;of the responses posted, which are always helpful, if not educational.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cheers&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 16:37:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3799993#M50660</guid>
      <dc:creator>BlackBox_</dc:creator>
      <dc:date>2013-03-08T16:37:38Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800448#M50661</link>
      <description>&lt;P&gt;If you use an IMessageFilter and check if certain keys are pressed, and what is currently happening in AutoCAD, you might be able to do what you need. &amp;nbsp;You can use System.Windows.Forms.ModifierKeys to check if CTR/SHIFT/ALT are pressed when you see a mouse wheel message, but you'd have to find a combination of keys that aren't used by AutoCAD with mouse wheel activity, if you don't want to step on that.&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 23:42:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800448#M50661</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-08T23:42:48Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800450#M50662</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@BlackBoxCAD wrote:&lt;BR /&gt;&lt;P&gt;My post was not in any way intended to challenge the request for more information; instead it was simply in the hopes of gaining some level of understanding behind the seemingly absolute response you originally offered.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;SPAN&gt;The OP asked about events, not hooking windows messages.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I asked for more specifics because there are ways to handle things like pointer movements in the drawing editor without having to handle low-level input events.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 08 Mar 2013 23:49:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800450#M50662</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-08T23:49:48Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800468#M50663</link>
      <description>&lt;P&gt;I actually ended up creating a new modeless window that takes control when focused. Basically got to where layer walk is. Gee, what a test.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What prevents me from marking this topic as solved is whether the message filter could be applied application wide. That is, whether a message filter can be added on the plugin initialization.&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2013 01:58:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800468#M50663</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-09T01:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800531#M50664</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;&lt;P&gt;I actually ended up creating a new modeless window that takes control when focused. Basically got to where layer walk is. Gee, what a test.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What prevents me from marking this topic as solved is whether the message filter could be applied application wide. That is, whether a message filter can be added on the plugin initialization.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Message filters can be added at any time during a plugin's life.&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2013 08:29:01 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800531#M50664</guid>
      <dc:creator>DiningPhilosopher</dc:creator>
      <dc:date>2013-03-09T08:29:01Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard and Mouse Events</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800532#M50665</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Alright. Although I didn't actually apply that in the end, it is the answer to the initial question:&lt;/STRONG&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@BlackBoxCAD wrote:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;Forgive my curiosity, but while this is no Ctrl+MouseWheel Event handler, what's wrong with DoEvents(), and acedUsrBrk() to catch user input?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Quote:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;"It's fairly common for developers to want to check for user input from time to time during long operations, especially to see whether the user wants to cancel the current activity. In VB you'd use DoEvents() to enable messages to be processed by the application's message loop and in ObjectARX you'd use acedUsrBrk().&lt;/P&gt;&lt;P&gt;So how to do this in .NET?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The answer is to use&amp;nbsp;&lt;A target="_blank" href="http://msdn2.microsoft.com/en-us/library/system.windows.forms.imessagefilter.prefiltermessage.aspx"&gt;a message filter&lt;/A&gt;. This allows us to check on user-input events... we still call DoEvents, as with previous versions of VB, which allows user input events (such as keystrokes) to flow into our message filter function. We can then detect the events we care about, and filter them out, if necessary."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2007/02/index.html&lt;/A&gt;&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1052889"&gt;@DiningPhilosopher&lt;/a&gt; wrote:&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;Message filters can be added at any time during a plugin's life.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;With a really strong notions of dangers of such approach:&lt;/STRONG&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1052889"&gt;@DiningPhilosopher&lt;/a&gt; wrote:&lt;BR /&gt;&lt;P&gt;If you use an IMessageFilter and check if certain keys are pressed, and what is currently happening in AutoCAD, you might be able to do what you need. &amp;nbsp;You can use System.Windows.Forms.ModifierKeys to check if CTR/SHIFT/ALT are pressed when you see a mouse wheel message, but you'd have to find a combination of keys that aren't used by AutoCAD with mouse wheel activity, if you don't want to step on that.&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;STRONG&gt;Thanks everyone.&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 09 Mar 2013 08:40:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/3800532#M50665</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2013-03-09T08:40:21Z</dc:date>
    </item>
    <item>
      <title>Re: Catching Keyboard enter key eventEvents</title>
      <link>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/5682432#M50666</link>
      <description>&lt;P&gt;The code below is working fine for selecting 3 parts&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;' To suppress a part&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public Sub AssemblyCount()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Set reference to active document.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This assumes the active document is an assembly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oDoc As Inventor.AssemblyDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set oDoc = ThisApplication.ActiveDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim selset As SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim compOcc As ComponentOccurrence&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox ("Select a Part or a Subassembly")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until oDoc.SelectSet.Count = 3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Yield to other processes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set selset = oDoc.SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim obj As Object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each obj In selset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf obj Is ComponentOccurrence Then&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set compOcc = obj&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compOcc.Suppress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;But&amp;nbsp;i want to select multiple parts until i hit enter button after hitting enter button all the selected parts must be suppressed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I tried the Application.onkey&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public enterWasPressed As Boolean&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;' To suppress a part&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Public Sub AssemblyCount()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Set reference to active document.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ' This assumes the active document is an assembly&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim oDoc As Inventor.AssemblyDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set oDoc = ThisApplication.ActiveDocument&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim selset As SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim compOcc As ComponentOccurrence&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox ("Select a Part or a Subassembly")&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enterWasPressed = False&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Do Until enterWasPressed = True&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoEvents&amp;nbsp;&amp;nbsp;&amp;nbsp; ' Yield to other processes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application.OnKey "{ENTER}", "recordEnterKeypress"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set selset = oDoc.SelectSet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim obj As Object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; For Each obj In selset&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If TypeOf obj Is ComponentOccurrence Then&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set compOcc = obj&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compOcc.Suppress&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oDoc.SelectSet.Clear&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Sub recordEnterKeypress()&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; enterWasPressed = True&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;but i am getting runtime error '424' object required can anyone please help me to fix my issue&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;When i am searching in google i saw your post to use IMessageFilter to handle keyboard and mouse event.Can you please help me to fix my issue by writing the apt code for it. Since i am new to autodesk and i am not familiar with IMessageFilter i am asking you for the code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;First i need to press a command button in the user form and then go to inventor to select the part or assemblies so that it can be suppressed on press of enter key&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 18 Jun 2015 09:50:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/catching-keyboard-and-mouse-events/m-p/5682432#M50666</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-06-18T09:50:46Z</dc:date>
    </item>
  </channel>
</rss>

