C# 报告Windows上课程的鼠标位置

C# 报告Windows上课程的鼠标位置,c#,ncurses,C#,Ncurses,在托马斯·迪基(Thomas Dickey)的Windows版本的ncurses中,如果无法从一个简单的c#包装器中连续读取鼠标位置,我可以毫无问题地调用大部分API 但是,除非有相应的单击事件,否则我无法读取鼠标位置。我的代码是高度特定于实现的,但我的快速脏测试应用程序的主循环看起来是这样的(显然NC是我的许多静态方法的包装器): var事件掩码= NCMouse.BUTTON1\u已单击| NCMouse.BUTTON2\u已单击| 报告鼠标位置; NC.鼠标掩码(事件掩码,out uint

在托马斯·迪基(Thomas Dickey)的Windows版本的ncurses中,如果无法从一个简单的c#包装器中连续读取鼠标位置,我可以毫无问题地调用大部分API

但是,除非有相应的单击事件,否则我无法读取鼠标位置。我的代码是高度特定于实现的,但我的快速脏测试应用程序的主循环看起来是这样的(显然
NC
是我的许多静态方法的包装器):

var事件掩码=
NCMouse.BUTTON1\u已单击|
NCMouse.BUTTON2\u已单击|
报告鼠标位置;
NC.鼠标掩码(事件掩码,out uint old);
while(true)
{
int c=NC.GetChar();
if(c==NCKey.MOUSE)
{
NC.GetMouse(out MouseEvent mouse);
MoveAddString(3,0,$“{mouse.x}.{mouse.y}”);
}
其他的
如果(c!=-1)
{
打破
}
NC.移动(NC.行-1,NC.列-1);
NC.Refresh();
}

通过阅读*nix解决方案,我怀疑我可能需要某种环境变量,尽管我也看到C开发人员的评论说,他们必须
printf(“\0cc[?1003h\n”)
来启用鼠标位置报告,然后在退出之前以类似的顺序禁用它。我想我必须对msvcrt DLL进行pinvoke操作才能尝试(我没想到.NET的
控制台。Write
会工作,但它没有工作)。

Windows控制台驱动程序(所有这些二进制文件都支持它)不使用转义序列。顺便说一句,您可以通过设置环境变量来启用跟踪。

这是一个来自该人本人的答案!Windows控制台是否支持连续鼠标指针位置报告?如果支持,需要什么来启用它?我使用
TRACE\u max
运行了我的测试,这很有趣(尤其是看到整个缓冲区都被刷新了,老兄,在过去我本可以将其用于调试),但我没有得到任何答案。没有-控制台支持只查找按钮事件,尽管阅读了,但我没有看到任何阻止实现运动事件的东西。