检测控制台应用程序中的系统范围滚动

3
我想知道如何制作一个控制台应用程序,可以检测用户是否使用鼠标滚轮(在屏幕的任何位置都行)。
之所以希望它是一个控制台应用程序,是因为我可以让它在后台运行。我已经搜索了很多,但似乎找不到我需要的东西。

3
这不是一个“真正的问题”。你尝试过什么?在这里展示一下你的努力。请阅读[常见问题]和[提问规范]。 - Soner Gönül
我似乎无法开始,我尝试搜索一些代码片段,但它们似乎都与窗口绑定或仅在表单应用程序中工作。 - M. Boeckx
一个控制台应用程序在控制台中运行,而不是在后台运行。也许你需要一个Windows服务。但是,“检测鼠标滚轮”很接近键盘记录... - Corak
2个回答

1

您可以阅读这个主题:

鼠标滚轮事件 (C#)

如果您拥有自己的控件,您可以通过设计师非常容易地设置这些内容,或者在代码中动态设置。但是,鼠标需要位于您的控件之上,以便您能够接收事件。因此,在您的情况下,您需要在消息过滤器上注册。请注意,在那里不要做太多的事情。如果您在这个地方做得太多,可能会使整个应用程序变慢:

public bool PreFilterMessage(ref Message m) 

您也可以设置一个Windows Forms项目,而不必显示一个表单。以下是Windows Forms项目的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);
        }
    }
}

非常感谢! :) 隐藏的Windows表单是一个不错的额外功能!我认为这正是我所需要的。 - M. Boeckx
你好,欢迎您。您可以查看我提供的链接。它应该非常容易实现。如果用户滚动,您可以从这里调用一些内容:if (m.Msg == 0x20a)。 - Patrick

0

谢谢,这也很有趣可以研究一下 :) 我会去看看的。 - M. Boeckx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接