Exemplo n.º 1
0
        /// <summary>
        /// Get process window parameters
        /// </summary>
        /// <param name="process">Target process</param>
        /// <returns>Four dimension of target window</returns>
        private DataStruct.Rect windowParam(string process)
        {
            Process[]       ps   = Process.GetProcessesByName(process);
            DataStruct.Rect rect = new DataStruct.Rect();

            foreach (Process p in ps)
            {
                GetWindowRect(p.MainWindowHandle, out rect);
            }

            return(rect);
        }
Exemplo n.º 2
0
        }  /*
            * if (!hook_flag && mouseHook == null)
            * {
            *   mouseHook = new Mouse.Hook();
            *   mouseHook.OnMouseActivity += new System.Windows.Forms.MouseEventHandler(mouse_OnMouseActivity);
            *   mouseHook.startHook();
            * }
            * else
            * {
            *   mouseHook.stopHook();
            *   mouseHook = null;
            * }
            * hook_flag = !hook_flag;
            * }
            *
            * void mouse_OnMouseActivity(object sender, MouseEventArgs e)
            * {
            * var windowPosition = MousePositionData.getCoorRatioInTargetWindow(windowParam(TARGET_PROCESS), e);
            * set_message_box("X:" + e.X + "  Y:" + e.Y + "\nX ratio:" + windowPosition.X.ToString("N2") + " Y ratio:" + windowPosition.Y.ToString("N2"));
            * }*/

        /// <summary>
        /// Used to invoke Mouse.performClick()
        /// </summary>
        /// <param name="ratio">ratio struct</param>
        /// <param name="delay">Thread delay after clicking</param>
        private void clickSimulate(DataStruct.MouseRatio ratio, int delay = 0)
        {
            DataStruct.Rect windowPosition = windowParam(TARGET_PROCESS);

            var left   = Convert.ToUInt32(windowPosition.left);
            var right  = Convert.ToUInt32(windowPosition.right);
            var top    = Convert.ToUInt32(windowPosition.top);
            var bottom = Convert.ToUInt32(windowPosition.bottom);

            Mouse.performClick(MousePositionData.getRelativePosition(left, right, ratio.X), MousePositionData.getRelativePosition(top, bottom, ratio.Y));

            Thread.Sleep(delay);
        }
Exemplo n.º 3
0
 private static extern int GetWindowRect(IntPtr hWnd, out DataStruct.Rect IpRect);