gpt4 book ai didi

c# - 在表单边界外单击时获取鼠标光标的位置

转载 作者:行者123 更新时间:2023-11-30 13:17:54 24 4
gpt4 key购买 nike

只需拖动鼠标,就可以很容易地将光标位置移出窗体边界,当位置发生变化时,它会向窗体发送许多值,形成以下代码行。

MessageBox.Show(Cursor.Position.ToString());

MessageBox showing mouse position.

但是当用户在表单边界外单击时,我需要获取鼠标位置。不仅仅是将鼠标悬停。我使用以下代码行来执行此操作:

private void Form1_Deactivate(object sender, EventArgs e)
{
MessageBox.Show(Cursor.Position.ToString());
}

我将 MessageBox.Show(Cursor.Position.ToString()); 放入表单 Deactivate 事件中。当用户在表单外单击时,此事件肯定会发生。但是当用户没有点击外部而是使用 ALT + TAB 组合键更改程序时,它也会发送错误的值。

实际上我必须捕获从第一次点击位置开始的区域的屏幕截图。因此,当在窗体外单击时,我需要光标的位置。喜欢: enter image description here

最佳答案

这可能对某些人有帮助。

我在这里使用 Windows.Forms.Timer 和两个文本框来显示 [X 和 Y] 光标位置。在计时器上调用 API GetCursorPos 并获取光标位置。

public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool GetCursorPos(ref Point lpPoint);

public Form1()
{
InitializeComponent();
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
var pt = new Point();

GetCursorPos(ref pt);
textBox1.Text = pt.X.ToString();
textBox2.Text = pt.Y.ToString();
}
}

问候,兰 git 。

关于c# - 在表单边界外单击时获取鼠标光标的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com