コード例 #1
0
        private static void ShowMouseCaptureForm(object sender, EventArgs e)
        {
            taskt.UI.Forms.Supplemental.frmShowCursorPosition frmShowCursorPos = new taskt.UI.Forms.Supplemental.frmShowCursorPosition();

            //if user made a successful selection
            if (frmShowCursorPos.ShowDialog() == DialogResult.OK)
            {
                //Todo - ideally one function to add to textbox which adds to class

                //add selected variables to associated control text
                CurrentEditor.flw_InputVariables.Controls["v_XMousePosition"].Text = frmShowCursorPos.xPos.ToString();
                CurrentEditor.flw_InputVariables.Controls["v_YMousePosition"].Text = frmShowCursorPos.yPos.ToString();

                //find current command and add to underlying class
                Core.Automation.Commands.SendMouseMoveCommand cmd = (Core.Automation.Commands.SendMouseMoveCommand)CurrentEditor.selectedCommand;
                cmd.v_XMousePosition = frmShowCursorPos.xPos.ToString();
                cmd.v_YMousePosition = frmShowCursorPos.yPos.ToString();
            }
        }
コード例 #2
0
            //build mouse command
            private static void BuildMouseCommand(IntPtr lParam, MouseMessages mouseMessage)
            {
                string mouseEventClickType = string.Empty;

                switch (mouseMessage)
                {
                case MouseMessages.WM_LBUTTONDOWN:
                    mouseEventClickType = "Left Down";
                    break;

                case MouseMessages.WM_LBUTTONUP:
                    mouseEventClickType = "Left Up";
                    break;

                case MouseMessages.WM_MOUSEMOVE:
                    mouseEventClickType = "None";



                    if (lastMouseMove.ElapsedMilliseconds >= msResolution)
                    {
                        lastMouseMove.Restart();
                    }
                    else
                    {
                        return;
                    }


                    break;

                case MouseMessages.WM_RBUTTONDOWN:
                    mouseEventClickType = "Right Down";
                    break;

                case MouseMessages.WM_RBUTTONUP:
                    mouseEventClickType = "Right Up";
                    break;

                default:
                    return;
                }

                ////return if non matching event
                //if (mouseEventClickType == string.Empty)
                //    return;



                //return if we do not want to capture mouse moves
                if ((!performMouseMoveCapture) && (mouseEventClickType == "None"))
                {
                    return;
                }

                //return if we do not want to capture mouse clicks
                if ((!performMouseClickCapture) && (mouseEventClickType != "None"))
                {
                    return;
                }

                //build a pause command to track pause since last command
                BuildPauseCommand();


                //define new mouse command
                MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));



                var mouseMove = new Core.Automation.Commands.SendMouseMoveCommand
                {
                    v_XMousePosition = hookStruct.pt.x.ToString(),
                    v_YMousePosition = hookStruct.pt.y.ToString(),
                    v_MouseClick     = mouseEventClickType
                };

                if (mouseEventClickType != "None")
                {
                    IntPtr winHandle = WindowFromPoint(hookStruct.pt);

                    int length     = GetWindowText(winHandle, _Buffer, _Buffer.Capacity);
                    var windowName = _Buffer.ToString();

                    mouseMove.v_Comment = "Clicked On Window: " + windowName;
                }

                generatedCommands.Add(mouseMove);
            }