3

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

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

4

2 回答 2

1

你可以阅读这个主题:

鼠标滚轮事件 (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);
        }
    }
}
于 2013-03-13T08:40:20.867 回答
0

实现它的一种方法是通过 P/Invoke 使用原始输入。从这里开始:

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

于 2013-03-13T08:43:40.850 回答