0

次のコードを使用して特定のアプリケーションにキーを送信していますが、一部の PC では機能しません。ほとんどのコンピュータで問題なく動作するため、コード自体は問題ないはずです。一部のコンピューターでは機能しないだけです。キーを何度も送信するか、まったく送信しません。グーグルで調べたところ、一部のマザーボードでよくある問題であることがわかったので、同じことを行うより信頼性の高いコードを実装したいと思います。

更新: 別のウィンドウをアクティブに設定する必要があるため、私のコードでは機能しないため、INPUTSIMULATOR はオプションではありません。(ちょうどそれをテストしました)

次のコードをより信頼性の高い方法で実現するにはどうすればよいですか?

    ....
    Key = Sender.Tag
    If Key = "{SPACE}" Then Key = " "

    SetActiveWindow(Form1.activewin)

    If IsNumeric(Key) Then
        SendKeys.Send(Key)
    Else
        SendKeys.Send(Special & IIf(CapsLock.Checked, UCase(Key), Key))
    End If

    Application.DoEvents()

    ....

ありがとう

4

1 に答える 1

0

inputsimulator を使用しSetForegroundWindow(Form1.activewin)、の前に 追加することで解決SetActiveWindow(Form1.activewin)

于 2013-05-23T08:52:15.383 に答える