示例#1
0
        public NetworkedHooker(ViewModel model)
        {
            Model  = model;
            Hooker = new Hooker();
            if (!HookEvents.IsAlreadyRegistered())
            {
                HookEvents.RegisterItself();
            }

            Model.PropertyChanged += (a, b) =>
            {
                if (b.PropertyName == ViewModel.CaptureScreenShotsProperty)
                {
                    if (Model.CaptureScreenShots == true)
                    {
                        EnableRecorder();
                    }
                    else
                    {
                        Recorder?.Dispose();
                        Recorder = null;
                    }
                }
            };

            if (Model.CaptureScreenShots)  // default is to enable it
            {
                EnableRecorder();
            }

            Hooker.OnKeyDown     += Hooker_OnKeyDown;
            Hooker.OnMouseButton += Hooker_OnMouseButton;
            Hooker.OnMouseMove   += Hooker_OnMouseMove;
            Hooker.OnMouseWheel  += Hooker_OnMouseWheel;
        }
示例#2
0
        /// <summary>
        /// Initialize things which must happen on a UI thread.
        /// </summary>
        public void InitUIDependantVariables(App args, TaskScheduler scheduler)
        {
            UISheduler          = scheduler;
            NetworkSendState    = new NetworkSendState(this, UISheduler);
            NetworkReceiveState = new NetworkReceiveState(this, UISheduler);
            WCFHost             = new WCFHostServiceState(this, UISheduler);
            Hooker = new NetworkedHooker(this);
            if (!HookEvents.IsAlreadyRegistered())
            {
                Commands["RegisterETWProvider"].Execute(null);
            }

            // use settings from command line if present
            CaptureKeyboard               = args.CaptureKeyboard;
            CaptureMouseButtonDown        = args.CaptureMouseButtonDown;
            CaptureMouseMove              = args.CaptureMouseMove;
            ScreenshotDirectoryUnexpanded = (args.ScreenshotDirectory ?? Configuration.Default.ScreenshotDirectory);

            CaptureScreenShots = args.CaptureScreenshots; // This line will also trigger a property change event which instantiates and starts the screenshotrecorder

            IsKeyBoardEncrypted = !args.IsKeyBoardNotEncrypted;

            if (args.SendToServer != null)
            {
                this.Host = args.SendToServer;
            }

            if (args.SendToServerPort != null)
            {
                if (int.TryParse(args.SendToServerPort, out int portNumber))
                {
                    this.PortNumber = portNumber;
                }
            }

            if (args.SendtoServerSecondaryPort != null)
            {
                if (int.TryParse(args.SendtoServerSecondaryPort, out int secondaryPort))
                {
                    this.WCFPort = secondaryPort;
                }
            }
        }