在控制台应用程序中检测系统宽滚动

本文关键字:滚动 检测系统 控制台 应用程序 | 更新日期: 2023-09-27 18:03:51

我想知道如何制作一个控制台应用程序来检测用户是否使用鼠标滚轮滚动(在屏幕上的任何地方)。

我希望它是一个控制台应用程序的原因是我可以在后台运行它。

在控制台应用程序中检测系统宽滚动

我已经找了好一会儿了,但似乎还是找不到我需要的东西。

你可以阅读这个主题:

鼠标滚轮事件(c#)

如果你有自己的控件,你可以很容易地设置这些东西通过设计器,或在代码动态。但是,鼠标需要位于控件的顶部,这样才能接收到事件。在您的例子中,您需要在消息过滤器上注册。小心点,不要在里面做太多的事。如果你在这个地方做得太多,可能会减慢整个应用程序的速度:

public bool PreFilterMessage(ref Message m) 

也可以设置窗体项目而不显示窗体。下面是一个windows窗体项目的program.cs代码:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new WindowlessApplicationContext());
    }
}
/// <summary>
/// The window less application context.
/// </summary>
internal class WindowlessApplicationContext : ApplicationContext
{
    /// <summary>
    /// Standard constructor.
    /// </summary>
    public WindowlessApplicationContext()
    {
        try
        {
            //Your code
        }
        // you mayy add catch here
        finally
        {
            //Close process
            Environment.Exit(0);
        }
    }
}

实现它的一种方法是通过p/Invoke使用Raw Input。从这里开始:

http://msdn.microsoft.com/en-us/library/ms645543(v=vs.85).aspx,
http://msdn.microsoft.com/en-us/library/ms645536(v=vs.85).aspx.

引自:http://www.codeproject.com/Questions/217948/I-need-to-capture-mouse-events-in-Console