【问题标题】:alternative sto VB.NET SendKeysVB.NET SendKeys 的替代品
【发布时间】:2013-05-23 07:17:54
【问题描述】:

我正在使用以下代码将密钥发送到某个应用程序,但在某些 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()

    ....

谢谢

【问题讨论】:

  • 谢谢,但输入模拟器在我的情况下不起作用,因为我必须将文本写入 anotehr 窗口。刚刚更新了主帖。谢谢!
  • 窗口是您项目的一部分还是来自不同的进程?
  • 如果是不同的进程Process Class,将允许您覆盖标准输入。
  • 一个不同的过程。对不起,我是新手,你能解释一下进程类是什么意思吗?

标签: vb.net sendkeys


【解决方案1】:

通过使用inputsimulator并在前面添加SetForegroundWindow(Form1.activewin)解决 SetActiveWindow(Form1.activewin)

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多