Exemplo n.º 1
0
        public void Start(object sender, EventArgs e)
        {
            _ui.enabled = true;
            var role = _game.GetProfileName(_process, _items.CurrentId());

            try
            {
                RuleSet                  ruleSet     = null;
                XmlTextReader            rulesReader = new XmlTextReader(role + ".rules");
                WorkflowMarkupSerializer serializer  = new WorkflowMarkupSerializer();
                ruleSet = (RuleSet)serializer.Deserialize(rulesReader);
                rulesReader.Close();

                _hotKeyList = new KeyRegistrar();
                var start = _keyHandler.RegisterKeys(ref _hotKeyList, ruleSet);
                try
                {
                    _keyboardHook.Dispose();
                }
                catch {; }
                _keyboardHook             = new KeyboardHook();
                _keyboardHook.KeyPressed += keyboardHook_KeyPressed;

                foreach (var hKey in _hotKeyList.keyList)
                {
                    _keyboardHook.RegisterHotKey(hKey.modifier, hKey.key);
                }

                _threadQueue = new ConcurrentQueue <QueueMessage>();
                if (_worker != null)
                {
                    _worker.CancelAsync();
                }

                _worker = new BackgroundWorker();
                _worker.WorkerSupportsCancellation = true;
                _worker.WorkerReportsProgress      = true;
                _worker.DoWork          += (obj, eventArgs) => start(_threadQueue, _process, _items.CurrentId(), obj as BackgroundWorker, ruleSet);
                _worker.ProgressChanged += _worker_ProgressChanged;
                _worker.RunWorkerAsync();
            }
            catch
            {
                var l = string.Format("Role {0} was not located", role);
            }
        }