2

VNC や TeamViewer に似た、オープンソースのリモート デスクトップ ツールを作成しています。TeamViewer がユーザーの切り替え画面またはワークステーションのロック画面で画面をキャプチャし続け、リモート ユーザーがパスワードを入力してワークステーションのロックを解除できるようにしていることに気付きました。私も同じことをしたいです。

もう読んだ:

更新: Windows ログオン画面でのユーザーとの対話

https://stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-password

Windows ログオン画面にコマンド ボタンを追加する

Windows ログオン画面からホットキーをフックする

https://stackoverflow.com/questions/7183241/launch-windows-on-screen-keyboard-at-logon-screen-on-win7

キープレスをシミュレートするドライバー

サービスによる Windows ログオン画面の削除

Windows 7 のログオン画面でキーをキャッチする方法は?

Windows XP で C# を使用してログオン画面にウィンドウを表示する

これらの投稿から、分離されたセッションで入力をシミュレートすることは、SendInput() への単純な呼び出しではないことがわかりました。しかし、ドライバーを使用することは可能ですか (具体的にはキーボード フィルター ドライバーだと思いますが、よくわかりません)。もしそうなら、C# で (ユーザーのセッションの外で実行されるように) インターセプト ドライバーとやり取りしてキーの押下をシミュレートするサービスを作成することを考えています。

「試してみませんか?」という質問に対して、私がそのようなサービスをテストするための .NET ラッパーはまだありません。その .NET ラッパーの作成に時間を費やしたくありません。

Interception という名前のキーボード ドライバーを見つけました (これは将来オープン ソースでリリースされる予定です)。ここでソースを直接見つけることができます (ソースは、実際のカーネル ドライバーを囲む C 通信 API ラッパーのみです)

もう 1 つ質問があります...ドライバーを構成するファイルについて混乱しています。C でプログラムされた彼の Interception DLL ライブラリは、.DLL にコンパイルされます。しかし、一部の .sys 拡張子のドライバーではありませんか?そのインターセプション DLL を実際のドライバーにコンパイルするにはどうすればよいでしょうか?そして、どのようにインストールしますか?

編集: .NET ラッパーは存在します。「x」キーを押したときにパスワード全体を入力するようにサンプル コンソール アプリを改造したところ、ワークステーションのロック画面だけでなく、Windows ログオン画面でも正常に機能しました。それでうまくいきます。

編集: このキーボード ドライバーの C# ラッパー ライブラリは hereです。

4

2 に答える 2

2

現在、実際のドライバーはオープン ソースではありません。ドライバーのインストーラーはそれら (keyboard.sys と mouse.sys) をインストールします。オープン ソースであるのは、それらと通信するための API のみです。カーネル コンポーネントもオープン ソース化する前に書き直す予定です。

于 2012-03-12T14:36:21.603 に答える
1

答えに興味のある他の人のために:はい、それはうまくいきます。

https://github.com/candera/kchordrにある Interception キーボード ドライバーの .NET ラッパーを使用して、いろいろ試してみてください。Windows ログオン画面でもキーを置き換えます。

于 2012-03-11T04:38:22.833 に答える