C#在屏幕上获取鼠标坐标

时间:2020-01-10 17:31:56

标签: c# mouseevent coordinates mouse

我找到了我正在工作的视频和源代码;通过点击表格外获取坐标。我尝试将其与事件相关联:通过单击(向右/向左)或按“ F11”键; 但这不能正常工作。

{{1}}

我还考虑将默认光标图标更改为目标图标,并且将其居中,类似于直射射击瞄准器,但是我没有发现任何类似的东西,只有我的代码中有。

,但这无法正常工作。我不知道我想念吗?

1 个答案:

答案 0 :(得分:0)

我已使用以下更新代码解决了该问题: 我已经更改了某些执行的顺序,并更改了具有威胁的任务。

using System;
using System.Threading;
using System.Windows.Forms;

namespace iMouse
{
    public partial class Events : Form
    {
        public Thread TrackerThread;
        public Mutex Checking = new Mutex(false);
        public AutoResetEvent Are = new AutoResetEvent(false);
        public Events()
        {
            InitializeComponent();
        }
        private void Events_Load(object sender, EventArgs e)
        {
            CheckForIllegalCrossThreadCalls = false;
        }
        public void Button3_Click(object sender, EventArgs e)
        {
            Visible = false;
            MouseTracker();
        }
        private void MouseTracker()
        {
            if (Checking.WaitOne(10))
            {
                var ctx = new SynchronizationContext();
                Are.Reset();
                TrackerThread = new Thread(() =>{
                       while (true)
                       {
                           if (Are.WaitOne(1))
                           {
                               break;
                           }
                           if (MouseButtons == MouseButtons.Left)
                           {
                               ctx.Send(CLickFromOutside, null);
                               break;
                           }
                       }
                   }
                );
                TrackerThread.Start();
                Checking.ReleaseMutex();
            }
        }

        private void CLickFromOutside(object state)
        {
            Are.Set();
            int X = MousePosition.X;
            int Y = MousePosition.Y;
            TextBox2.Text = X.ToString();
            TextBox3.Text = Y.ToString();
            Visible = true;
        }
    }
}