問題タブ [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# - SendInput を使用してスカンジナビアの手紙を送信する方法
次のような SendInput メソッドを使用してキーボードをシミュレートする仮想キーボードを作成しようとしています。
しかし、 Keys 列挙からスカンジナビア文字の Ä、Ö、Å を見つけることができません。SendInput メソッドを使用してこれらの手紙を送信するにはどうすればよいですか?
c# - VirtualBox で FreeBSD にキーを送信する
VirtualBox で FreeBSD にキーを送信する小さなアプリケーションを C# で作成しようとしていますが、うまくいきません。SendKeys と InputSimulator を試しましたが、何も起こりませんでした。メモ帳では適切に機能しますが、VirtualBox では機能しません。誰もそれを行う方法を知っていますか?
c# - C# DirectInput SendInput ゲームには影響しない
DirectInput について助けが必要です。何をしようとしているのかを説明します。キーを 1 つだけ押したときに、プログラムがキーの組み合わせをゲームに送信するようにしたいと考えています。例: 「r」を押すと、「1」、「3」、「2」、「4」のキーが押されます。ここからいくつかのコードを見つけました。しかし、それらは正確には機能しませんでした。
ここに私のコードと私の質問があります: Send_Key_Hold を使用しているときは、ゲームで 1 つのキーのみを押し、最初のキーが保持されているため、他の組み合わせキーは押されていないと思います。Send_Key_Hold と Send_Key_Release を一緒に使用すると、ゲームのボタンが押されません。しかし、デスクトップ (つまり、ゲーム以外のアプリケーション) では、キーを押します。
c++ - SendInput() での修飾キーの動作がおかしい
SendKeys()
を使用して関数を実装しようとしてSendInput()
います。関数の主要なスニペットは次のとおりです。
そして、ここに私のテストコードがあります:
"Hello" の代わりに "HELLO" を受信し続け、プログラムが終了した後も ctrl ボタンが押されたままのようです。何が起こったのだろうか。
c# - UIPI が原因で SendInput が失敗する
私はWin7でマウスイベントをシミュレートしようとしています.Webサイトhttp://inputsimulator.codeplex.com/のオープンソースプロジェクト「Windows Input Simulator」を使用して、マウスイベントをシミュレートするために以下のコードを内部的に使用しています。
私のアプリケーションは、Visual Studio 2010 でデバッグすると完全に動作します。左ボタン クリック イベント、右ボタン クリック イベント、およびマウス移動イベントは問題ありません。しかし、.exe アプリケーションの実行可能ファイルをダブルクリックしてエクスプローラーからアプリケーションを起動すると、クリック イベントが送信されません。左ボタンのクリックまたは右クリックをシミュレートしようとすると、アプリケーションは例外を受け取り、終了します。以下のコードで例外がスローされることがわかりました。
つまり、UIPI が SendInput(...) をブロックしたということです。だから私はこのトピックをグーグルで調べて、いくつかのアドバイスを得ました.
1) アプリケーションのマニフェストに uiAccess="true" を追加します
2) テスト証明書を作成し、この証明書をローカル マシンの信頼されたルート証明機関の証明書ストアと信頼された発行元の証明書ストアに追加します。
3) 以前のデジタル署名でアプリケーションに署名する
4) 私のアプリケーションを、コンピューター上の安全な場所の 1 つである "C:\Program Files" フォルダーにインストールします。
UIPI 要件を満たすためにすべてのことを行ったと思いますが、アプリケーションを起動して UAC プロンプトに同意しても問題は解決しません。マウス移動イベントのみOK。
PS: テスト証明書でアプリケーションに署名せず、マニフェストに "requestedExecutionLevel" と uiAccess="true" を追加するだけの場合、アプリケーションは起動せず、Windows は "A referral was returned from the server." というメッセージのダイアログを表示します。テスト証明書でアプリケーションに署名した場合、アプリケーションの起動時に UAC が機能します。SendInput を呼び出してクリック イベントをシミュレートし、例外がスローされるまで、アプリケーションは動作します。
http://msdn.microsoft.com/en-us/library/bb625963.aspxで「Interface Privilege Isolation (UIPI) and integrity」に関する要件を読みましたが、これをすべて実行してもまだ機能しません。
ブログを見つけました。このブログでは、次のように書かれています。
[アプリケーション マニフェストの] requestedPrivileges 属性で UIAccess=”true” を指定することにより、アプリケーションは、特権レベルを超えてウィンドウ メッセージを送信する際の UIPI 制限をバイパスする要件を示しています。Windows Vista は、UIAccess 特権でアプリケーションを起動する前に、次のポリシー チェックを実装します。アプリケーションには、ローカル マシンの信頼されたルート証明機関の証明書ストア内の信頼されたルートに連鎖するデジタル証明書を使用して検証できるデジタル署名が必要です。アプリケーションは、Program Files ディレクトリなど、管理者のみが書き込み可能なローカル フォルダ アプリケーション ディレクトリにインストールする必要があります。
残念ながら、管理者以外のユーザーがアプリケーションをインストールできる場合、これは機能しません。
アプリケーションを最後の文「管理者以外のユーザーがアプリケーションをインストールできる場合、残念ながらこれは機能しません」に準拠させず、マニフェストに uiAccess="true" を追加して UIPI をバイパスする方法を知りたいです。
誰でもこれについて私を助けることができますか?
c# - スレッド入力をターゲット プロセスにアタッチした後、SendInput が機能しない
UI Automation要素を実装していないように見えるプログラムのUIで動作する必要があるアプリケーションを作成しています(Inspect.Exeはメインペインのみを表示し、子は表示しません)。
そこで、必要な機能を実装するための最良の方法を調べたところ、明らかに keybd_event() と mouse_event() の新しいバージョンである SendInput() が見つかりました。
ただし、キーボードフォーカスが必要であり、ターゲットウィンドウをフォアグラウンドに設定する余裕がないため (実行中にユーザーを煩わせないようにするため)、この回答が見つかるまで検索を続けました。Skurmedel が言ったことを実行し、アプリケーションのスレッドをターゲットのウィンドウ スレッドに結合しました。しかし今、ターゲットに SetFocus() を実行してから SendInput() を実行しても、ターゲット ウィンドウは影響を受けません。
私の質問は、「なぜこれが機能しないのですか?」です。または「私は何を間違っていますか?」、しかし、コード例がこれを整理するのに役立つと思います:
ThreadHandler クラス
主な申請方法
SendInput()の難解な芸術について私を解明できれば、事前に感謝します。