9

基本的に、Windowsキーをクリックするユーザーをコードでシミュレートしたいと考えています。ハンドルを取得した場合にキー押下をウィンドウに送信できるSendKeysがあることは知っていますが、Windowsキーコマンドを送信するためにハンドルを取得する必要があるかどうかはわかりません。例: Windows キー + L. これを少し読んだところ、CTRL-ESC でスタート メニューもポップアップするように見えますが、キーを Windows に送信するように指示する方法がわかりません (これが可能である場合)。どんな助けでも大歓迎です。

乾杯!

4

4 に答える 4

9

SendKeysを使用してこれを行うことはできないと思います。代わりに、API関数( CTRL + ESCまたはWindowsキーのいずれかを送信するにはkeybd_event )をp/invokeする必要があります。

これは、VBでこの方法でスタートメニューを開く例です。これは、pinvoke.netC#署名が付いたkeybd_eventです。

于 2009-09-17T08:39:10.420 に答える
5

ユーザーが WinKey ショートカットを介して行うことの一部は、他の方法でプログラムによって行うことができます。WinKey+L の例を挙げると、代わりに次のステートメントを使用できます。

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

達成しようとしていることを正確に説明できる場合は、keybd_event よりも良い方法があるかもしれません (Dale が提案したように)。

于 2009-09-27T18:24:28.527 に答える
-2

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

于 2009-09-17T08:36:08.183 に答える