Ejemplo n.º 1
0
        private void InitSystem()
        {
            PathRandomizer.CopyFiles();
            Remoting.Init();

            this.InjectThread = new Thread(
                () =>
            {
                var trigger = new EdgeTrigger();

                trigger.Rising += (sender, args) =>
                {
                    Application.Current.Dispatcher.InvokeAsync(
                        () =>
                    {
                        this.icon_connected.Visibility    = Visibility.Visible;
                        this.icon_disconnected.Visibility = Visibility.Collapsed;
                    });
                };

                trigger.Falling += (sender, args) =>
                {
                    Application.Current.Dispatcher.InvokeAsync(
                        async() =>
                    {
                        this.icon_connected.Visibility    = Visibility.Collapsed;
                        this.icon_disconnected.Visibility = Visibility.Visible;
                        await this.UpdateAccount();
                    });
                };

                while (true)
                {
                    try
                    {
                        Thread.Sleep(3000);

                        if (Config.Instance.Install)
                        {
                            Injection.Pulse();
                            trigger.Value = Injection.IsInjected;

                            Console.WriteLine(Injection.SharedMemory.Data.IsLoaded);
                        }
                    }
                    catch
                    {
                        // ignored - A task was canceled.
                    }
                }
            });

            this.InjectThread.SetApartmentState(ApartmentState.STA);
            this.InjectThread.Start();
        }
Ejemplo n.º 2
0
        public static RuleTrigger Convert(WD_Trigger wdTrigger)
        {
            RuleTrigger trigger;

            switch (wdTrigger.Type)
            {
            case WD_TriggerType.Area:
                trigger = new AreaTrigger
                {
                    Area = new Rectangle(wdTrigger.Values[0], wdTrigger.Values[1], wdTrigger.Values[2] - wdTrigger.Values[0], wdTrigger.Values[3] - wdTrigger.Values[1]),
                };
                break;

            case WD_TriggerType.Edge:
                EdgePosition edgePosition;
                switch (wdTrigger.Position)
                {
                case WD_TriggerPosition.Left: edgePosition = EdgePosition.Left; break;

                case WD_TriggerPosition.Top: edgePosition = EdgePosition.Top; break;

                case WD_TriggerPosition.Right: edgePosition = EdgePosition.Right; break;

                case WD_TriggerPosition.Bottom: edgePosition = EdgePosition.Bottom; break;

                default: throw new NotSupportedException();
                }
                trigger = new EdgeTrigger
                {
                    Position = edgePosition,
                    From     = wdTrigger.Values[0],
                    To       = wdTrigger.Values[1],
                };
                break;

            case WD_TriggerType.Corner:
                CornerPosition cornerPosition;
                switch (wdTrigger.Position)
                {
                case WD_TriggerPosition.TopLeft: cornerPosition = CornerPosition.TopLeft; break;

                case WD_TriggerPosition.TopRight: cornerPosition = CornerPosition.TopRight; break;

                case WD_TriggerPosition.BottomLeft: cornerPosition = CornerPosition.BottomLeft; break;

                case WD_TriggerPosition.BottomRight: cornerPosition = CornerPosition.BottomRight; break;

                default: throw new NotSupportedException();
                }
                trigger = new CornerTrigger
                {
                    Position = cornerPosition,
                };
                break;

            default: throw new NotSupportedException();
            }

            trigger.DisplayIndex = wdTrigger.Monitor + 1;
            return(trigger);
        }