私はVNCとTeamViewerのようなオープンソースのリモートデスクトップツールを作成しています。私は、TeamViewerがSwitch UsersまたはWorkstation Locked画面で画面をキャプチャし続けていることに気付きました。リモートユーザはパスワードを入力してワークステーションのロックを解除できます。私は同じことをしたい。ドライバを使用してWindowsログオン画面の入力をシミュレートする
は、私が読んだ:
Updated: Interacting with the user on the windows logon screen
https://stackoverflow.com/questions/9485530/capturing-image-during-windows-logon-invalid-password
Adding command button to Windows Logon screen
hook a hotkey from windows logon screen
これらの記事からDriver to Simulate Keypress
Removing Windows Logon screen through a service
How to catch a key in Windows 7 logon screen?
Displaying Window on Logon Screen Using C# in Windows XP
、私は)独立セッション中に入力をシミュレートすることは間違いなく、SendInput(への単純な呼び出しではないことを収集しました。しかし、それは可能ですドライバを使用して(私はそれが具体的にはキーボードのフィルタドライバだと思うが、私はわからない)?もしそうなら、私はC#で、インターセプトドライバとやり取りしてキーの押下をシミュレートするサービス(ユーザのセッションの外で実行する)を書くことを考えています。
「なぜあなたはただ試してみませんか?」というのは、インターセプト用の.NETラッパーはまだありませんが、このようなサービスをテストするためには、一般的なコンセンサスでは、可能な限り、私は.NETラッパーを書く時間を費やしたくありません。
私はan keyboard driver called Interception (that will be released open-source in the future)を見つけました。直接find the source here (the source is only the C communication API wrapper surrounding the actual kernel driver)することができます。
私が持っている別の質問...私はファイルがドライバを構成するのか混乱しています。 Cでプログラムされた傍受DLLライブラリは.DLLにコンパイルされます。しかし、いくつかの.sys拡張のドライバではありません - どのようにしてインターセプトDLLを実際のドライバにコンパイルしますか?そしてそれをどのようにインストールしますか?
編集:A .NET wrapper does exist。私は 'x'キーを押したときにサンプルコンソールアプリケーションを変更してパスワード全体を入力し、ワークステーションのロック画面だけでなく、Windowsのログオン画面でも正常に機能しました。それは動作します。
編集:C# wrapper library for this keyboard driver is here。
私は同じ状況にあります。実際には、Windowsサービスから「SendInput」を試して、アクティブな間に入力がログオン画面に送信されているかどうかを確認しましたか? – tunafish24