Exemple #1
0
 private static void ProcInterrupt()
 {
     _signal_interrupt.Set();
     if (_interrupt_delegate != null)
     {
         _interrupt_delegate();
         _interrupt_delegate = null;
     }
     HotKeyGlobal.UnsubscribeAll();
 }
Exemple #2
0
        public static void Wait(int timems)
        {
            HotKeyGlobal.SubscribeAll();
            _signal_interrupt.Reset();
            bool signaled = _signal_interrupt.WaitOne(timems, true);

            if (signaled)
            {
                throw new Errors.KeyboardInterruptError();
            }
            HotKeyGlobal.UnsubscribeAll();
        }
Exemple #3
0
        static SysWaiter()
        {
            string user = Environment.UserDomainName + "\\" + Environment.UserName;
            var    rule = new EventWaitHandleAccessRule(user,
                                                        EventWaitHandleRights.FullControl,
                                                        AccessControlType.Allow);
            var security = new EventWaitHandleSecurity();

            security.AddAccessRule(rule);

            bool createdNew;

            _signal_interrupt = new EventWaitHandle(false,
                                                    EventResetMode.ManualReset,
                                                    @"Global\InterruptKey",
                                                    out createdNew,
                                                    security);

            HotKeyGlobal.DefineHotKey(MOD_NONE, VK_ESCAPE, ProcInterrupt);
        }