問題タブ [sendinput]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6034 参照

winapi - キーボードのSendInput()-大文字のみ

かなり面白いです。数分前にここでキーボードのSendInput()を尋ねました-小文字のみ、大文字の文字の送信方法。解決策は、手紙の前にシフトを送ることでした。しかし、シフトをオンにした後、私はそれをオフにすることはできません...

私は次のようなKEYEVENTF_KEYUPフラグで一生懸命努力しています:

しかし、それはまったく機能しないようです。常にAAを送信します。

ありがとう。

0 投票する
1 に答える
1408 参照

c# - KeyEventArgsからVirtualKeyCodeへ

キープレスのシミュレーションに役立つWindowsInputSimulatorライブラリを利用しようとしています。

ソフトウェアは、クライアントとサーバーで構成されます。クライアントでキーが入力されると、そのKeyEventArgsがサーバーに送信されます。次に、サーバーはそれを使用して次のことを行います。

これは単一のキーで機能します。ただし、修飾キーも使用しようとしているため、問題が発生しています。たとえば、SHIFT + Kを押すと、「k2」が生成されます。これにより、VirtualKeyCodesへの変換が不安定であるか、他の何かが不安定であると思われるようになります。

また、これらのコマンドを送信するときに、KeyDown / KeyUpイベントのみをキャッチする必要がありますか?または、KeyPressイベントも監視する必要がありますか?矢印キーと非文字キーでも作業できるはずなので、KeyPressを無視するだけでよいと思います。

編集:また、複数の修飾子を使用していることをどのように知ることができますか?それらをどのようにつなぎ合わせる必要がありますか?

考え?ありがとう!

0 投票する
1 に答える
1878 参照

c++ - SendInput を使用してコンピュータをロックする

C++ 経由で SendInput を使用してコンピューターをロックしたい ( Windows+L)。SendInputVK の送信に使用する単純な keyDown / keyUp 関数を作成しました。keyUp では、flag 0x0002

タブ キー、Windows キーをシミュレートできますが、シミュレートされたキー ストロークでコンピューターをロックしようとしています。次のメッセージを送信します。

私の問題: 何も起こらない :-(

誰かが解決策を知っていますか?

0 投票する
1 に答える
189 参照

winapi - 他のアプリケーションに文字列を書き込む方法は?

Windows APIを使用して他のアプリケーションと通信するにはどうすればよいですか?

たとえば、別のアプリケーションにテキストボックスがあり、mouse_eventを使用してマウスを設定しましたが、文字列を送信してそのテキストボックスに文字列を表示する方法がわかりません。

0 投票する
3 に答える
74056 参照

c# - user32.dllのSendInputを介してキーを送信します

このボードをデモ用のキーボードとして使用しています。

とにかく長い話を短くするために、ごくわずかな場合を除いてすべてがうまくいきます。user32.dllにあるSendInput関数を使用してキーストロークを送信します。

したがって、私のプログラムは次のようになります。

そして、これらのメソッドが使用するオンラインで見つけた構造体とキーコードは次のとおりです:(多くのコードのように見え、列挙型に多くのキーコードがあるためです)

では、なぜ私の質問は、そのキーの組み合わせを送信すると、実際のキーボードで送信した場合と同じ結果が得られないのですか?物事の98%が機能します。たとえば、私は次のことができます。

そして、それは大文字のAを送信します。

別のライブラリを使用する必要がありますか?

このアプローチが好きな理由は、ユーザーがキーの組み合わせを送信するかどうかを事前に知らないためです。たとえば、Windowsフォームで送信する場合:

System.Windows.Forms.SendKeys.SendWait("+{end}");それはシフト+終了を送信しますが、おそらくユーザーはシフトを送信したいだけです...

0 投票する
3 に答える
3859 参照

c# - SendInput Ctrl + C を押してから、Clipboard.GetText を介してコピーされたコンテンツを取得しても機能しません

と を使用した単純な Windows フォーム アプリケーションがありTextBoxますButton。をクリックすると、Buttonフォーカスが置かれ、TextBoxキーストロークがシミュレートCtrl + Cされて、コンテンツがクリップボードにコピーされます。このキーシミュレーションを で行っておりSendInput、 も試しSendKeys.Send("^c")ました。コンテンツをメモ帳などに貼り付けることで確認できるため、これはコピー操作に対して適切に機能します。

次に、このコピーされた値をプログラムで取得したいと考えていますClipboard.GetText。ただし、問題は、このメソッドが現在の値ではなく、クリップボードの以前の値を常に返すように見えることです。たとえば、my の値のシーケンスがTextBox「hello」、「world」の場合、出力のシーケンスは「junk」、「hello」です。SendKeys以下は、簡単にするためにメソッドを使用した私のコードです。

0 投票する
1 に答える
1510 参照

c# - sendinputマウスの移動速度の制御

Sendinputメソッドを使用するときにマウスポインタの速度を制御することは可能ですか?

たとえば、これは私のコードです:

次のコードは、MouseMovement + Mouse Button Press(down)コマンドを実行しますが、問題は、ポインターが一定の速度で移動するのではなく、位置(int x、int y)でテレポートすることです。

その速度を制御できるようにしたいと思います。

0 投票する
1 に答える
306 参照

c# - ホットキーの組み合わせがアクティブになったときにキーボードイベントを適切にシミュレートする方法

アクティブ化のために特定のホットキーの組み合わせを登録するプログラムがあります。この質問の目的のために、このホットキーが Ctrl + Alt + D であるとしましょう。組み合わせが押されると、私のプログラムは SendInput を使用してアクティブなウィンドウへの他のキーボード イベントをシミュレートします。たとえば、Ctrl + A をシミュレートできます。私の問題は、ホットキーの組み合わせから Ctrl キーがまだ押されているため、(私が思うに) Ctrl + A のシミュレーションが正しく機能しないことです。私が考えている解決策の 1 つは、ホットキーの組み合わせのすべてのキーに対して Key Up イベントを送信し、Ctrl + A をシミュレートすることですが、これが適切な処理方法であるかどうかを確認したかったのですか?

0 投票する
2 に答える
2806 参照

c++ - C ++で入力をエミュレートするPostMessage()?

ゲーム用の簡単なボッティング プログラムを作成しようとしています。ゲームがフォーカスされていない場合や最小化されている場合でも、これが機能することを望みます。このため、SendInput() はグローバル イベントをシミュレートするため、使用できません。これを機能させるには、PostMessage() 関数を使用する必要があることがわかりました。メモ帳での入力をシミュレートするテスト プログラムを作成しました。

この例では、メモ帳がフォーカスされていないか最小化されている場合でも、メモ帳で "a" のクリックを正常にシミュレートします。同様に、マウスイベントも機能するようになりました。

しかし、自分のゲームでこれと同じことをしようとすると、クリック コマンドを送信できません。調査の結果、元のハンドルは取得されているが、FindWindowEx() を呼び出すとアクセス許可が拒否され、ハンドルが返されないことがわかりました。

この機能をブロックする場合、別のプロセスへの「編集」アクセスを取得する方法はありますか?

0 投票する
1 に答える
1685 参照

c++ - C++のWindowsでSendInputを使用してキーボードイベントを同時に送信する

SendInputを使用してC++でキーボードの押下をシミュレートしたいのですが、単一のボタンは機能しますが、キーを同時に送信しようとしても機能しません(ショートカット)。

すべてを試しましたが、何も機能しません。VK_LWINを単独で送信すると表示されますが、キーを同時に組み合わせることができませんでした。

これが私のコードです:

これは正常に機能しますが:

ヒントを事前に感謝します。