【问题标题】:Detect system wide scrolling in Console application在控制台应用程序中检测系统范围的滚动
【发布时间】:2013-03-13 08:29:23
【问题描述】:

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

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

【问题讨论】:

  • 这不是一个真正的问题。你试过什么?在这里展示你的努力。请阅读FAQHow to Ask
  • 我似乎无法开始,我尝试搜索一些代码,但它们似乎都绑定到窗口或仅在表单应用程序中工作。
  • 控制台应用程序在控制台中运行,而不是在后台运行。也许你想要一个 Windows 服务。但是“检测鼠标滚轮”危险地接近键盘记录......

标签: c# background scroll console-application


【解决方案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);
        }
    }
}

【讨论】:

  • 非常感谢! :) 隐藏的 Windows 窗体是一个不错的附加功能!我想这就是我需要的。
  • 您好,不客气。您可以查看我提供的链接。它应该很容易实现。如果用户滚动,你可以从这里调用一些东西:if (m.Msg == 0x20a)
【解决方案2】:

实现它的一种方法是通过 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

【讨论】:

  • 谢谢,这也很有趣:)我会调查的。
猜你喜欢
  • 2010-10-19
  • 1970-01-01
  • 2012-08-28
  • 2011-04-15
  • 2012-10-11
  • 1970-01-01
  • 2016-11-12
  • 2017-01-15
  • 2018-03-27
相关资源
最近更新 更多