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

これを実現する 1 つの方法は、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

于 2013-03-13T08:43:40.850 に答える