public override void DoBeforeNextExecute() { CheckScriptTimer(); if (cmd == 'M') { if (SF == null) { SF = new ScriptMouse(this); } SF.Mouse(); } // If a mouse command was given in the script, issue it all at once right here if ((int)deltaXOut != 0 || (int)deltaYOut != 0 || wheel != 0) { var input = new MouseKeyIO.INPUT[1]; input[0].type = MouseKeyIO.INPUT_MOUSE; input[0].mi = MouseInput((int)deltaXOut, (int)deltaYOut, (uint)wheel, 0, MouseKeyIO.MOUSEEVENTF_MOVE | MouseKeyIO.MOUSEEVENTF_WHEEL); MouseKeyIO.NativeMethods.SendInput(1, input, Marshal.SizeOf(input[0].GetType())); // Reset the mouse values if ((int)deltaXOut != 0) { deltaXOut = deltaXOut - (int)deltaXOut; } if ((int)deltaYOut != 0) { deltaYOut = deltaYOut - (int)deltaYOut; } wheel = 0; } currentMouseState = null; // flush the mouse state setPressedStrategy.Do(); }
public void SetButtonPressed(int button, bool pressed) { uint btn_flag = 0; if (button == 0) { if (pressed) { if (!leftPressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_LEFTDOWN; } } else { if (leftPressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_LEFTUP; } } leftPressed = pressed; } else if (button == 1) { if (pressed) { if (!rightPressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_RIGHTDOWN; } } else { if (rightPressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_RIGHTUP; } } rightPressed = pressed; } else { if (pressed) { if (!middlePressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_MIDDLEDOWN; } } else { if (middlePressed) { btn_flag = MouseKeyIO.MOUSEEVENTF_MIDDLEUP; } } middlePressed = pressed; } if (btn_flag != 0) { var input = new MouseKeyIO.INPUT[1]; input[0].type = MouseKeyIO.INPUT_MOUSE; input[0].mi = MouseInput(0, 0, 0, 0, btn_flag); MouseKeyIO.NativeMethods.SendInput(1, input, Marshal.SizeOf(input[0].GetType())); } }