Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

pirms 8 mēnešiem
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. Until a separate, full-featured test version is ready, here's a quick update that can be made to the TestFormHookListeners:
  2. //HotKeySetsListener inherits KeyboardHookListener
  3. private readonly HotKeySetsListener m_KeyboardHookManager;
  4. private readonly MouseHookListener m_MouseHookManager;
  5. public TestFormHookListeners()
  6. {
  7. InitializeComponent();
  8. //m_KeyboardHookManager = new KeyboardHookListener(new GlobalHooker());
  9. //m_KeyboardHookManager.Enabled = true;
  10. m_MouseHookManager = new MouseHookListener( new GlobalHooker() ) { Enabled = true };
  11. HotKeySetCollection hkscoll = new HotKeySetCollection();
  12. m_KeyboardHookManager = new HotKeySetsListener( hkscoll, new GlobalHooker() ) { Enabled = true };
  13. BuildHotKeyTests( hkscoll );
  14. }
  15. private void BuildHotKeyTests( HotKeySetCollection hkscoll )
  16. {
  17. //Hot Keys are enabled by default. Use the Enabled property to adjust.
  18. hkscoll.Add( BindHotKeySet( new[] { Keys.T, Keys.LShiftKey }, null, OnHotKeyDownOnce1, OnHotKeyDownHold1, OnHotKeyUp1, "test1" ) );
  19. hkscoll.Add( BindHotKeySet( new[] { Keys.T, Keys.LControlKey, Keys.RControlKey }, new[] { Keys.LControlKey, Keys.RControlKey }, OnHotKeyDownGeneral2, OnHotKeyDownGeneral2, OnHotKeyUp1, "test2" ) );
  20. }
  21. private static HotKeySet BindHotKeySet( IEnumerable<Keys> ks,
  22. IEnumerable<Keys> xorKeys,
  23. HotKeySet.HotKeyHandler onEventDownOnce,
  24. HotKeySet.HotKeyHandler onEventDownHold,
  25. HotKeySet.HotKeyHandler onEventUp,
  26. string name )
  27. {
  28. //Declare ALL Keys that will be available in this set, including any keys you want to register as an either/or subset
  29. HotKeySet hks = new HotKeySet( ks );
  30. //Indicates that the keys in this array will be treated as an OR rather than AND: LShiftKey or RShiftKey
  31. //The keys MUST be a subset of the ks Keys array.
  32. if ( hks.RegisterExclusiveOrKey( xorKeys ) == Keys.None ) //Keys.None indicates an error
  33. {
  34. MessageBox.Show( null, @"Unable to register subset: " + String.Join( ", ", xorKeys ),
  35. @"Subset registration error", MessageBoxButtons.OK, MessageBoxIcon.Error );
  36. }
  37. hks.OnHotKeysDownOnce += onEventDownOnce; //The first time the key is down
  38. hks.OnHotKeysDownHold += onEventDownHold; //Fired as long as the user holds the hot keys down but is not fired the first time.
  39. hks.OnHotKeysUp += onEventUp; //Whenever a key from the set is no longer being held down
  40. hks.Name = ( name ?? String.Empty );
  41. return hks;
  42. }
  43. private void GeneralHotKeyEvent( object sender, DateTime timeTriggered, string eventType )
  44. {
  45. HotKeySet hks = sender as HotKeySet;
  46. string kstring = String.Join( ", ", hks.HotKeys );
  47. Log( String.Format( "{0}: {2} {1} - {3}\r\n", timeTriggered.TimeOfDay, eventType, hks.Name, kstring ) );
  48. }
  49. private void OnHotKeyDownGeneral2( object sender, HotKeyArgs e )
  50. {
  51. GeneralHotKeyEvent( sender, e.Time, "ONCE/HOLD" );
  52. }
  53. private void OnHotKeyDownOnce1( object sender, HotKeyArgs e )
  54. {
  55. GeneralHotKeyEvent( sender, e.Time, "ONCE" );
  56. }
  57. private void OnHotKeyDownHold1( object sender, HotKeyArgs e )
  58. {
  59. GeneralHotKeyEvent( sender, e.Time, "HOLD" );
  60. }
  61. private void OnHotKeyUp1( object sender, HotKeyArgs e )
  62. {
  63. GeneralHotKeyEvent( sender, e.Time, "UP" );
  64. }