4

CodeProject.com で見つけた低レベルのキーボード フック用のコードを使用しています。唯一の問題は、mono では動作しない外部 DLL 呼び出しを使用していることです。そのコードと同じことを達成する方法を誰かが知っているかどうか疑問に思っていましたが、.net を使用する Windows と mono を使用する Linux の両方で実行できますか?

編集:私がやろうとしていることを明確にする:アプリケーションのようなダッシュボードを作成しています。プログラムはシステム トレイにあり、ユーザーがホットキーを押すと、すべてのガジェットがポップアップ表示されます。したがって、プログラムにはフォーカスがないため、通常はキーストロークをキャッチしません。そのため、低レベルのキーボード フックを使用し、ユーザーがホットキーとして定義する 2 つのキーをフックします。しかし、私はそのために Windows DLL 呼び出しを使用していますが、これはモノを使用する Linux では機能しません。同じことを行う方法があるかどうか疑問に思っていますが、モノを使用してLinuxで実行できますか?

4

2 に答える 2

4

何をキャプチャしようとしているのかを知らなければ、何が効果的かを判断するのは困難です。Application.AddMessageFilter を使用して確認することをお勧めします。

例はここにあります: http://dn.codegear.com/article/30129

于 2008-09-26T14:32:59.290 に答える
3

.Net だけを使用してこの動作を実現することはできません。実行するプラットフォーム (Windows、Linux、Mac OS) ごとにバイナリ ドライバーを使用する必要があります。「余分な」dll/so/dylib を配布する必要がないように、P/Invoke (実行している OS を検出し、適切なシステム ライブラリを呼び出す) のみを使用することも可能です。

于 2008-09-26T18:41:31.157 に答える