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

c++ - C++ SendInput がキーを離さない

以下のコードを使用します。左と右の両方のキーを押し続け、自分でそれらのキーを押すまで離しません。

左のキーコードを実行して右のキーを押し続けると、左のキーを押し続けます..自分で左のキーを押すまで停止します。

右キーコードを実行すると、右キーでも同じことが起こり、右キーを押し続けます。左キーを押すことができ、自分で右キーを押すまで右キーを押し続けます。

SendInput を使用した理由は、keybd_event が信頼できないためです。DOWN/UP の間に Sleep(Milliseconds) を配置しないと、何も実行されず、Sleep() を使用すると、このプログラムの意図がスローされます。できるだけ早くタップする必要があり、キーを押し続けると間違った答えになる可能性があります (これは照準プログラムのようなものです)。

これは右キーをタップするためのものです

これは左キーをタップするためのものです

編集: 新しいコードは次のようになります。このスタイルは好きではありません。

もう一度編集: (これも機能しません) 最初に KEYUP を送信するようにだまそうとしました。

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

c# - C#フォーカスなしでマウスを動かすことができない

マウスを動かして、アプリケーションの外でマウス クリックをシミュレートしたいと考えています。

マウス、sendinput、BotSuite や Input Simulator を含む多数のライブラリを動かすあらゆる方法を試しました。

アプリケーションがフォーカスを失うたびに、マウスを動かしたり、クリックしたりしていません。マウスを動かしてアプリケーション内をクリックすることはできますが、フォーカスを失うとすぐに完全に機能しなくなります。フォーカスが合っていても、アプリケーション以外のものをクリックすることはできません。

何故ですか?

BotSuite を使用したスニペットを次に示します。その前にプロセスを開始し、それを焦点にしています。

これは機能していません。ただし、事前に自分のアプリケーションで SetForegroundWindow を実行すると、Mouse.Move コマンドが機能します。クリックしても、アプリケーションの境界の外では機能しません。

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

c# - SendInput() 経由で Browser_Back/Forward を送信できない (Surface Pro 2 のみ)

数日前、Microsoft Arc Touch Mouse Surface Edition を入手しました。残念ながら、進む/戻るボタンはありません (ページアップ/ページダウンのみを実行します)。

そこで、Page_Up/Page_Down キーの押下をキャッチし、代わりにブラウザの戻る/進むボタンを送信する小さなプログラムを作成しました。

私の PC (Win 8.1 Pro) では、これは非常にうまく機能します。ただし、私の Surface Pro 2 (プログラムが主に作成されたもの) では、Browser_Back-/Forward-Buttons は送信されません。他のすべてのキー (スペース、文字、数字など) では、プログラムは機能しているようです。

キーコードを送信するためのコードは次のとおりです。

そして、ここではキーボードフック:

したがって、キーボードの Page-Down/Page-Up ボタンが押されると、send() メソッドが呼び出されます。0xA6 と 0xA7 は、Browser_Back と Browser_Forward のキーコードです。

私の Surface では、Page-Up/Page-Down ボタンが正しく認識されます。send() メソッドも呼び出されますが、正しいキーコードは送信されません。Spy++ によると、キーコードが 0xA6 または 0xA7 の場合、send() は何も送信しません (私の PC では動作します)。

Surface Pro 2 の問題はどこにありますか? 機能すること、または機能しない理由をどのように判断できますか?

0 投票する
0 に答える
254 参照

c++ - 仮想キー「バックスペース」が機能しない

Virtual-Key Codesを使用してキー (バックスペース) を押すシミュレーションを実装しようとしています。テキスト ファイルが開いているときにコードを実行すると期待どおりに動作します (テキストが削除されます) が、Win 8 フォト アプリが開いているときにコードを実行しても何も起こりません (たとえば、上の写真アルバムに 1 レベル上がると予想されます)。 .

誰かが理由を知っていますか?Win8 フォト アプリでバックスペース キーの押下をシミュレートするには、どうすればよいですか?

私のコード:

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

winapi - ダブルクリックを正確に処理するには?

left_mouse を 2 回クリックしてアクション ダブルクリックを処理したい.2 回のクリック時間の間に、100ms スリープする

SendInput(LEFT_CLICK...);
スリープ(100);
SendInput(LEFT_CLICK...);

私の PC では問題なく動作するが、仮想マシンでは正しく動作しない可能性があります、マシンが "SendInput" 機能を実行する際に遅延時間が発生する可能性があります

"Sleep(100)" を削除しても、2 回クリックするだけで "私が望むようにダブルクリック」。

この場合、ダブルクリックを正確に処理する方法

とにかくそれをするように私に提案してください

ありがとう、

0 投票する
0 に答える
168 参照

c++ - explorer.exe の mouse_event ブロック

teamviewer などのリモート アクセス アプリケーションを開発しています。クライアントからサーバーにマウス イベントを送信する場所 (mouse_event() 関数を使用してサーバーで実行)。しかし、何らかの理由でマウスイベントがブロックされ、サーバーはそれらを受信し、mouse_event() API を使用して OS に送信できますが、結果はありません。

OSがこれらのマウスイベントを実行しなかった理由を確認するツールはありますか。

注: キーボード イベントはうまく機能します。そして、SendInput() APIも試しました。

WindowsでC++を使用してアプリケーションを開発しています。

同じことについてあなたの提案を教えてください。

前もってありがとう、ポール。

0 投票する
0 に答える
370 参照

c++ - Windows XP で SendInput が期待どおりに機能しない

INPUT構造をSendInput()使用し、フックを使用して入力コマンドを別のウィンドウに送信するプロジェクトに取り組んでいます。

次のコードを使用して、最後にアクセスしたアプリケーション ウィンドウのハンドルを取得しています。

次に、貼り付けコマンドを送信します。

今の問題は、これで作業できることですWin 7, 8 and 8.1。しかし、コマンドを送信する前にXP、プログラムの最初のブロックが余分に押されているという問題が発生しています。TABCTRL-V

なぜこれが起こっているのか誰にでも教えてもらえますか? どうすればこれを解決できますか?いつでも提案をいただければ幸いです。前もって感謝します。

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

c++ - C++ SetCursorPos を使用してウィンドウ内でマウスを移動する

wiimote に似たデバイスを作成しました。これを Windows (8.1) でマウスとして使用したいと考えています。デバイスは tcp 経由で Wi​​ndows コンピューターの c++ win32 プログラムに接続し、マウス カーソルが移動する位置を送信します。SetCursorPos 関数を使用して位置を設定しています。これは、ほとんどのプログラムを制御するのに最適です。しかし、例えばタスクマネージャを制御しようとすると、カーソルが動かなくなります。タスクマネージャーから別のプログラムに切り替えると、再び機能します。また、同じ結果で SendInput 関数を使用しようとしました。

これは私のコードがSendInputでどのように見えるかです:

SetCursorPos を使用すると、次の 1 行で済みます。

一部のプログラムで機能しない理由を誰か教えてもらえますか? カーソルを制御するスマートフォンアプリを試してみたところ、すべてのプログラムで機能したので、これが可能でなければならないことはわかっています。