問題タブ [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.
c# - C# p/Invoke DirectX ゲームの SendInput を使用して keyPRESS イベントをシミュレートする方法
私は、さまざまなボットやその他の GUI 自動化プログラムのキーボード プレス イベントをシミュレートすることにしばしば苦労しました。
以下を使用して、キーダウンイベントをシミュレートできました。
また
および以下を使用したキーアップ イベント:
また
そして、私の試みは2つを次のように組み合わせようとしています:
さまざまな程度の成功を収めてきましたが、DirectX (またはその他の 3D) ゲームが物理キーボードを使用した人間とまったく同じように私の入力を見るキーホールド/プレスイベントを実際にエミュレートすることはできませんでした...
SendInput を使用して、DirectX ゲームで見られるキーのプレス/ホールド イベントをどのようにエミュレートしますか?
c# - PC版フルーツ忍者でSendInputがブロックされる
SendInput
関数を使用してマウスイベントをシミュレートし、PC でフルーツ忍者をプレイするプログラムを作成しています。しかし、私が電話をかけたときSendInput
、マウスは動いたが、ゲーム画面では何も起こりませんでした。なぜうまくいかないのか、解決策を教えてもらえますか?私はC#でプログラミングし、関数[dllimport]
を呼び出すのに使用していました。SendInput
ありがとう。
c++ - SendInput() は C++ のキーボードで手動でキーを押すのと同じではありませんか?
キーボードのキー「A」を押すことをエミュレートする C++ コードを書きたかったのです。
他のプログラムを起動してプログラムの実行を待つと、「A」がクリックされ、最初のプログラムがそれに反応します。しかし、他のアプリケーションでは、私のアクションが何らかの形で妨げられていることがわかりました (キーボードで手動で「A」を押すことはできますが、プログラムを使用してもアクションは発生しません)。
では、プログラムから「A」を押すことを、手動で「A」を押すのと同じにするために何ができますか(そのため、2 番目のプログラムはプログラムから呼び出されたことを認識しません)。
2 番目のプログラムのソース コードがなく、「A」が手動で押されていないことをどのように認識するのかわかりません。
コードに反応したいウィンドウがフォアグラウンドであり、キーを受け取ってブロックしていると確信しています(したがって、イベントがユーザーからではなくプログラムから来ていると判断できます)。
delphi - SendInput と keybd_event の比較
MSDN は、keybd_event が SendInput に取って代わられたと述べています。書き換え中に、SendInput を使用するように切り替えました...これは、Alt キーの組み合わせを送信しようとする場合を除いて問題ありませんでした。Win7 64 ビット システム (他の場所ではまだ試していません) では、Alt キーを送信すると、ターゲット アプリケーションでキーストロークが明らかになる前に長い遅延が発生します。
理由はありますか?それとも私が間違ったことをしましたか?とりあえず、keybd_event に戻りました。これは、以下の 2 番目のバージョンです。
c - 連続する SendInput 呼び出し間の最小間隔
を使用して Web ページのフォームに文字を入力していますSendInput
。
たとえば、a
文字を入力するには、次の 2 つのコマンドを送信します。
- プレスA
- リリースA
文字を入力するには、次のA
4 つのコマンドを送信する必要があります。
- プレスShift
- プレスA
- リリースA
- リリースShift
等々。これを機能させるには、連続するコマンドの間に少し待つ必要があります。待機間隔の長さが重要であることがわかりました。100 msを使用すると、上記のコマンド シーケンスが常に成功するとは限りませんが、安定させるには200 ~ 250 msで十分なようです。失敗した場合は、シーケンスを繰り返すと役立ちます。現在、私のコードは多くのユーザー PC で正常に実行されますが、待機のために少し遅くなります。
コードを高速化するために、何が起こっているのかを理解したいと思います。Windows には固有の文書化された制限がありますか?連続するSendInput
呼び出し間の待機が避けられない理由は何ですか? 少なくともどのくらい待たなければならないかを見積もることはできますか?
前もって感謝します。
c# - SendInput() を使用して DirectX アプリケーションにキーを送信する方法は?
DirectX アプリケーションにキーを送信する必要があります。DirectInput フックを除いて最も低いレベルのキー シミュレーションであると聞いたので、SendInput() を使用しようとしています。
問題は、Windows アプリケーションでのみ問題なく動作し、DirectX アプリケーションでは問題なく動作することです。解決策を探していたところ、wVk の代わりにスキャンコードを使用し、dwFlags を 0x0008 (スキャンコード) に設定する必要があることがわかりました。
「a」を最前面のウィンドウに送信する必要がありますが、directX アプリケーションはそれに反応しません。また、DirectX スキャンコード (私の場合は 'a' = 0x1E) を使用しようとしましたが、まだ変更はありません。
ただし、SendInput() で動作するはずです。ソフトウェア「Glovepie」をダウンロードして、このプログラムがゲームのキーをシミュレートできるかどうかをテストしました。そうする方法があり、ライブラリにフックするとは思いません。いくつかの調査の後、SendInput() API も使用しているようです。それを機能させるために何をすべきか誰かが知っていますか?
どうもありがとうございました
vb.net - 外部アプリケーションの mdi 子ウィンドウで sendinput を使用するにはどうすればよいですか?
外部アプリケーションの mdi 子ウィンドウで sendinput API を使用して、数学演算のためにキー/マウス入力を外部アプリケーションに送信しようとしています。ウィンドウ ハンドル ID があり、setfocus ウィンドウ API を使用してそれにフォーカスを設定しますが、sendinput はキーを送信しません。数値を許可する受信コントロールにタブで移動します。さらに、3.3 などの数値を 10 進入力として送信する必要があります。外部アプリケーションの画像が必要な場合は、以下にコメントしてください。Google ドライブ アカウントに画像を投稿します。
編集: ここに画像へのリンクがあるので、誰かが入力を送信する方法を理解できます: https://drive.google.com/file/d/0BwIppJC0dxJBalp3Ykd2VzZkQ0E/edit?usp=sharing
入力を送信するためのターゲット コントロールは、Panel0 で変更できる Psi、D、およびその他の値であり、ボタンもクリックする必要があります。
問題は、入力の送信がまったく機能せず、入力が送信されたことを示すメッセージ ボックスが表示されることです。