我想编写一个在后台运行的 Windows 程序,并打印出下一次鼠标双击事件发生的确切时间(精确到毫秒)。具体来说,我想要双击桌面上某个 .exe 文件的确切时间。有没有办法做到这一点,如果有,你能提供一些简单的示例代码吗?
问问题
2345 次
2 回答
0
可能制作一个 Windows 挂钩是最好的解决方案。查看有关钩子的文档。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632589%28v=vs.85%29.aspx
看看这个演示:
http://code.msdn.microsoft.com/windowsdesktop/CppWindowsHook-06957865
于 2012-10-12T02:10:18.213 回答
0
在某些情况下,例如silverlight,您没有鼠标双击事件,因此您可以检查鼠标按下的时间和位置,并将其与下一次鼠标按下的时间和位置进行比较,以模拟双击动作。它是这样的:
double mouseVerticalPosition;
double mouseHorizontalPosition;
DateTime clickedTime;
bool IsSecondClick = false;
void button_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if(IsSecondClick)
{
IsSecondClick = false;
if ((y - mouseVerticalPosition == 0) & y - mouseHorizontalPosition == 0) &
clickedTime - DateTime.Now < SOMETIME )
{
// mouse double click happenes
}
}
else
{
IsSecondClick = true;
clickedTime = DateTime.Now;
mouseVerticalPosition = e.GetPosition(null).Y;
mouseHorizontalPosition = e.GetPosition(null).X;
}
}
于 2012-10-12T02:17:40.710 回答