【问题标题】:Capturing mouse wheel events in console application在控制台应用程序中捕获鼠标滚轮事件
【发布时间】:2013-04-06 21:44:41
【问题描述】:

有没有办法使用 c# 在控制台应用程序中捕获鼠标滚轮事件,就像在 GUI / Window 应用程序中捕获鼠标滚轮事件一样?

我想这样做以仅滚动控制台中的部分文本。

我在 google 上搜索过这个,但我只能找到 Window 应用程序中的鼠标滚轮事件。

【问题讨论】:

标签: c# events console mousewheel


【解决方案1】:

调用ReadConsoleInput 函数。当您的控制台上的滚轮旋转时,您将收到MOUSE_WHEELED 事件。

【讨论】:

    【解决方案2】:

    你可以用“两个”部分做到这一点:

    1. 在鼠标滚轮事件上创建全局系统挂钩(很好的例子 here)

    2. 第二次使用 PInvoke 检查您的控制台是否处于活动状态(您 可以在这里找到一个例子: Determine if current application is activated (has focus))

    3. 您可以在 2 中扩展函数以获取窗口 RECT check here 和 鼠标位置与窗口位置相交

    【讨论】:

    • 谢谢,我会努力让它工作的。但是,也许我应该在我的帖子中提供这些信息,但我在 ubuntu 上使用 mono develop。鉴于 ubuntu 不包含执行此操作所需的所有 dll 文件这一事实,这是否适用于 linux 系统,或者是否有其他方法可以在 linux 系统上执行此操作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多