在Console应用程序中检测系统范围的滚动

时间:2013-03-13 08:29:23

标签: c# background scroll console-application

我想知道如何创建一个控制台应用程序,用于检测用户是否使用鼠标滚轮(屏幕上的任何位置)滚动。

我希望它成为控制台应用程序的原因是我可以在后台运行它。我现在搜索了很多,似乎无法找到我需要的东西。

2 个答案:

答案 0 :(得分:1)

您可以阅读此主题:

Mouse Wheel Event (C#)

如果您有自己的控件,则可以通过设计器或代码动态地设置这些内容。但是,鼠标需要位于您的控件之上,以便您将收到该事件。因此,在您的情况下,您需要在消息过滤器上注册。小心,你在那里做的不多。如果您在这个地方做了很多事情,这可能会减慢整个应用程序的速度:

public bool PreFilterMessage(ref Message m) 

您也可以在不显示表单的情况下设置Windows窗体项目。这是一个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);
        }
    }
}

答案 1 :(得分: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