2009-09-17 28 views
7

基本的には、ユーザがWindowsボタンをクリックしてコードをシミュレートしたいと思っています。私はSendKeysがあることを知っています。これは、私がそれらのハンドルを取得した場合、キーを押してウィンドウに送ることができますが、私が理解できないことは、Windowsのボタンコマンドを送信するためにハンドルを取得する必要があることです。例えば。 Windowsのボタン+ L.これを少し読めば、CTRL-ESCはスタートメニューもポップアップするはずですが、Windowsにキーを送る方法を伝える方法はわかりません。どんな助けでも大歓迎です。C#SendKeysを使用してWindowsボタンをプログラムで押す方法

乾杯!

答えて

-2

グローバルキーボードフックを使用して、アプリケーション外のキーボードにフックする必要があります。それを行う方法に関する記事がありますhere

+2

が正しくありません。これは、キーストロークを聞きたい場合だけで、キーストロークを送信する場合は使用しません。上記の文で –

9

SendKeysを使用してこれを行うことはできませんが、代わりにAPI関数に呼び出すか、おそらくkeybd_eventを押してCtrl + EscキーまたはWindowsキーを送信する必要があります。

HereはVBでこのようにスタートメニューを開き、hereはkeybd_eventであり、pinvoke.netのC#署名付きです。

5

ユーザーがWinKeyショートカットを使用して行うことのいくつかは、プログラムによって他の方法で実行できます。あなたのWINKEY + Lの例を取るために、あなただけではなく、次のステートメントを使用できます:デールが示唆したように、あなたが達成しようとしている正確に何に手の込んだことができれば

Process.Start("rundll32.exe", "user32.dll,LockWorkStation"); 

を、多分(keybd_eventより良い方法があります)。

+0

を使用すると、たとえば3台のネットワークにいる場合、特定のユーザーをロックすることは可能ですか? –

関連する問題