예제 #1
0
        private void PlayWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            var eventpass           = 0;
            var previousProcessName = string.Empty;

            foreach (MacroEvent macroEvent in events)
            {
                ++eventpass;
                PlayWorker.ReportProgress(eventpass);

                if (PlayWorker.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }

                //// Focus correct process
                //try
                //{
                //    if (macroEvent.CurrentProcessName == "GlobalMacroRecorder")
                //        continue;

                //    if (macroEvent.CurrentProcessName != previousProcessName)
                //        Resources.ProcessHelper.BringMainWindowToFront(macroEvent.CurrentProcessName);

                //    if (macroEvent.CurrentProcessName != "explorer")
                //        Resources.ProcessHelper.MoveWindow(macroEvent.WindowSize);
                //}
                //catch { }

                Thread.Sleep(macroEvent.TimeSinceLastEvent);

                switch (macroEvent.MacroEventType)
                {
                case MacroEventType.MouseMove:
                {
                    //var mouseArgs = (MouseEventArgs)macroEvent.EventArgs;
                    var mouseArgs = macroEvent.MouseEventArgs;
                    MouseSimulator.X = mouseArgs.X;
                    MouseSimulator.Y = mouseArgs.Y;
                }
                break;

                case MacroEventType.MouseDown:
                {
                    //var mouseArgs = (MouseEventArgs)macroEvent.EventArgs;
                    var mouseArgs = macroEvent.MouseEventArgs;
                    MouseSimulator.X = mouseArgs.X;
                    MouseSimulator.Y = mouseArgs.Y;
                    MouseSimulator.MouseDown(mouseArgs.Button);
                }
                break;

                case MacroEventType.MouseUp:
                {
                    //var mouseArgs = (MouseEventArgs)macroEvent.EventArgs;
                    var mouseArgs = macroEvent.MouseEventArgs;
                    MouseSimulator.X = mouseArgs.X;
                    MouseSimulator.Y = mouseArgs.Y;
                    MouseSimulator.MouseUp(mouseArgs.Button);
                }
                break;

                case MacroEventType.KeyDown:
                {
                    //var keyArgs = (KeyEventArgs)macroEvent.EventArgs;
                    var keyArgs = macroEvent.KeyEventArgs;
                    KeyboardSimulator.KeyDown(keyArgs.KeyCode);
                }
                break;

                case MacroEventType.KeyUp:
                {
                    //var keyArgs = (KeyEventArgs)macroEvent.EventArgs;
                    var keyArgs = macroEvent.KeyEventArgs;
                    KeyboardSimulator.KeyUp(keyArgs.KeyCode);
                }
                break;
                }
            }
        }
        private void PlayWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            var eventpass = 0;

            //MouseSimulator.X = 0;
            //MouseSimulator.Y = 0;
            foreach (MacroEvent macroEvent in events)
            {
                ++eventpass;
                PlayWorker.ReportProgress(eventpass);
                if (PlayWorker.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }
                Thread.Sleep(macroEvent.TimeSinceLastEvent);
                switch (macroEvent.MacroEventType)
                {
                case MacroEventType.MouseMove:
                {
                    var mouseArgs = (MouseEventArgs)macroEvent.MouseArgs;
                    MouseSimulator.X = (int)(mouseArgs.X / ScaleX);
                    MouseSimulator.Y = (int)(mouseArgs.Y / ScaleY);
                }
                break;

                case MacroEventType.MouseDown:
                {
                    var mouseArgs = (MouseEventArgs)macroEvent.MouseArgs;
                    MouseSimulator.MouseDown(mouseArgs.Button);
                }
                break;

                case MacroEventType.MouseUp:
                {
                    var mouseArgs = (MouseEventArgs)macroEvent.MouseArgs;
                    MouseSimulator.MouseUp(mouseArgs.Button);
                }
                break;

                case MacroEventType.MouseWheel:
                {
                    var mouseArgs = (MouseEventArgs)macroEvent.MouseArgs;
                    MouseSimulator.MouseWheel(mouseArgs.Delta);
                }
                break;

                case MacroEventType.KeyDown:
                {
                    var keyArgs = (KeyEventArgs)macroEvent.KeyArgs;

                    KeyboardSimulator.KeyDown(keyArgs.KeyCode);
                }
                break;

                case MacroEventType.KeyUp:
                {
                    var keyArgs = (KeyEventArgs)macroEvent.KeyArgs;
                    KeyboardSimulator.KeyUp(keyArgs.KeyCode);
                }
                break;
                }
            }
        }