ユーザーがマウスホイールでスクロールしたかどうかを検出するコンソールアプリケーションをどのように作成できるか疑問に思っていました (画面上の任意の場所)。
コンソール アプリケーションにしたい理由は、バックグラウンドで実行できるからです。私は今かなり検索しましたが、必要なものが見つからないようです。
ユーザーがマウスホイールでスクロールしたかどうかを検出するコンソールアプリケーションをどのように作成できるか疑問に思っていました (画面上の任意の場所)。
コンソール アプリケーションにしたい理由は、バックグラウンドで実行できるからです。私は今かなり検索しましたが、必要なものが見つからないようです。
このトピックを読むことができます:
独自のコントロールがある場合は、デザイナーを介して、またはコードで動的にそのようなものを非常に簡単にセットアップできます。ただし、イベントを受け取るには、マウスをコントロールの上に置く必要があります。したがって、あなたの場合、メッセージフィルターに登録する必要があります。そこではやりすぎないように気をつけてください。この場所で多くのことを行うと、アプリケーション全体が遅くなる可能性があります。
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);
}
}
}
これを実現する 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