問題タブ [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 に答える
1610 参照

c# - SendInput でテキストを送信するときにユーザー入力をブロックする方法

別のアプリケーションにテキストを送信するために SendInput (C# では pinvoke を使用) を使用しています。SendInput が動作しているときにユーザーが入力する可能性のあるテキストが、SendInput が代わりにテキストの送信を終了した後に追加されるように、ユーザー入力をブロックするにはどうすればよいですか? 現在、テキストがターゲット アプリケーションに送信されるときにユーザーが入力している場合、最終的な結果に一貫性がない可能性があります。ありがとう。

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

c# - DirectInputアプリケーションでのSendInputAPIを使用したキーボードのシミュレーション

カスタムゲームコントローラーアプリケーションのキーボードコマンドをシミュレートしようとしています。DirectInput環境でコマンドをシミュレートする必要があるため、通常のメソッドのほとんどは機能しません。フックを使用すると100%動作することはわかっていますが、もっと簡単な実装を見つけようとしています。

かなりの検索を行ったところ、仮想キーの代わりにスキャンコードでSendInput APIを使用することで機能するはずですが、キーが「固定」されているように動作するようです。KEYDOWNイベントとKEYUPイベントの両方を送信しましたが、DirectInput環境でメッセージを送信しようとすると、ゲームはキーが押されているかのように動作します。

たとえば、「W」キーの押下をシミュレートし、そのキーをファーストパーソンシューティングゲームで「前進」アクションにマッピングすると、ゲームに参加すると、以下の機能によってキャラクターが前進します。ただし、コマンドを1回発行するだけで、キャラクターが無期限に前進します。

これが、私が呼び出しているSendInput関数のコードスニペット(C#)です。

この方法が失われた原因なのか、それとも何か馬鹿げたものがあるのか​​、私にはわかりません。フックを使用する必要がない場合は、コードを過度に複雑にするのは嫌いですが、これは私にとっても新しい領域です。

誰もが与えることができるどんな助けも大いに感謝されます。

ありがとう!

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

c# - C# - Windows サービスからの SendInput() が機能しないが 1 を返す - Win03

これはやや珍しい問題です。現在、Office アプリケーションの自動化に取り組んでいます。基本的に問題は、RDP 経由でアプリを実行するとアプリが Office アプリと正しくやり取りできることですが、Windows サービスからアプリケーションを起動するように設定すると、SendInput() を使用してキーストロークを送信できません。OSはWin03 Std.

Windows サービスからアプリを生成すると、ウィンドウのキャプションを読み取ったり、相互運用機能を自動化したりできますが、呼び出しが 1 を返しても、SendInput() メッセージは一見消えてしまいます。この時点で行うことは、エスケープ キーストロークをダイアログに送信することです。

キーストロークを仮想キーとスキャンコードの両方で送信してみました。

アイデアやヒントはありますか?前もって感謝します!

(ところで:この種の自動化はMSFTによってサポート/認可されていないことを認識しています。)

編集: 他の誰かがこの問題を抱えている場合に備えて、これは機能します:

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

c# - KeyEventArgs を KEYDBINPUT 構造体に変換する

私は、あるコンピューターで低レベルのフックを介してキーボード入力を受け取り、それを注入する必要がある別のコンピューターに入力を送信するネットワーク システム (C#) で作業しています。

フックは、KeyEventArgs クラスでキーボード入力を配信します。それをターゲット コンピューターに挿入するには、SendInput で KEYBDINPUT 構造体を使用する必要があります。

KeyEventArgs.KeyCode または KeyValue と KEYBDINPUT.wVk および wScan の間には、簡単に一致するものはないようです。いくつかの組み合わせで MapVirtualKey も試しました。

別の方法として、ソース コンピューターで KeyEventArgs を Windows キー メッセージ (wParam および lParam を使用した WM_KEYUP/DOWN) に変換することもできますが、同様の問題に直面しています。

ここで誰かがどちらのシナリオでも手伝ってくれますか?

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

c# - Win32 & Win64 マシンでの SendInput キー

xp 32 ビットで sendInput() を使用し、Web サービスを使用して、現在フォーカスのあるウィンドウの F5 を押しました。現在、Vista win64 では、この結果を取得できません。一部の記事では、4 ビットまたは 8 ビットを使用した場合の uint の問題が指摘されていますが、これは差分コンパイルと FieldOffset(4) または (8) を使用したビスタでの問題を修正していません。他の人は、この SendInput() メソッドを使用すると、Vista の画面とウィンドウの間でやり取りがなくなると話しています。誰かがwin32およびwin64マシンでF5を押す解決策を指摘できますか. ありがとう。

}

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

c# - SendInput を使用した XButton 入力のシミュレート

SendInput を使用してマウス入力をシミュレートしましたが、これまでのところ、左クリック、右クリック、中央クリックを正常にシミュレートできます。ただし、xButton を適切にシミュレートできないようです。入力構造を次のように定義しています。

MouseButton は次のように定義されていますが、ここに問題があると思います。

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

winapi - SendInput を使用したドラッグ アンド ドロップ操作のシミュレーション

ドラップ & ドロップ操作をシミュレートするために SendInput を使用できますか?

コマンドラインからではなく、ドロップされた特定の形式のファイルを受け入れるアプリケーションがあり、それをファイルに関連付けたいと考えています。ウィンドウを検出し、ファイルのドラッグ アンド ドロップをシミュレートする小さなツールを作成しようと思いましたが、これは可能でしょうか? SendInputまたはおそらく使用する必要がありSendMessageますか?パラメータは何ですか?

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

c# - SendInputを使用する場合、受信ウィンドウがメッセージを受信して​​処理したことをどのように確認できますか?

入力シミュレータライブラリを使用して、C#を使用して別のアプリケーションへの入力をシミュレートしています。これはSendInputAPI呼び出しを使用します。外部アプリケーションのWindowsメッセージキューを監視して、それらのメッセージが処理されたかどうかを確認する方法があるかどうか誰かが知っていますか?

たとえば、「He​​llo」という単語のキーストロークをメモ帳に送信したいが、メモ帳が入力を受信して​​処理し、「Hello」という単語がメモ帳ウィンドウに表示されるまで、アプリケーションを続行したくないとします。 。キー押下メッセージがメモ帳のメッセージキューになくなると、これが発生したことがわかりますが、それを見つける方法がわかりません。

.NET SendKeysクラスとSendWaitを使用していましたが、これは不安定で、外部アプリケーションでフリーズが発生することがあるため、何週間も修正を試みた後、新しいメソッドを探しています。

どうもありがとう

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

keystroke - SendInput ゲームで機能しない

次の標準の GenerateKey Code を使用しています。

この関数を呼び出して、矢印キー (上、下、左、右) をシミュレートします。ただし、これは通常のエクスプローラー ウィンドウと小さなフラッシュ ゲームでは機能します。ただし、Need for Speed や Roadrash などのゲームで試してみると、機能しません。この動作の考えられる理由はありますか?

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

c# - キーボードとマウスのイベントをC#のDirectXアプリケーションに送信しますか?

グローバルキーストロークとマウスイベントを別のアプリケーションに送信する必要があります。これは、DirectXを使用して偶然に使用されています。(ウィンドウ自体以外のコントロール/ハンドルはありません)
たとえば、キーXを2秒間押し続けてから放す
必要があります...座標x:600およびy:350を右クリックして、マウスを動かす必要があります100ピクセル下に移動してから、右クリックを放します。
また、XとYのように一度に2つ以上のキーを押し、2秒後にXを停止し、さらに2秒後にYを停止する必要があります。
したがって、基本的には入力システムを完全に制御する必要があります...
最大化またはバックグラウンドでアプリケーションを制御できれば理想的です。(オプション)

懐疑論者のために...先生は私たちの学校のために描くためのDirectXアプリケーションを作成しました。電車や花などのサンプルを描画するアプリケーションを作成するように求められます...画像を読み取り、入力を使用して色を設定し、キャンバスをクリックします...