VB.NET SendKeys 的替代品

Posted

技术标签:

【中文标题】VB.NET SendKeys 的替代品【英文标题】:alternative sto VB.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()

    ....

谢谢

【问题讨论】:

也许这有帮助:***.com/questions/5028872/… 谢谢,但输入模拟器在我的情况下不起作用,因为我必须将文本写入 anotehr 窗口。刚刚更新了主帖。谢谢! 窗口是您项目的一部分还是来自不同的进程? 如果是不同的进程Process Class,将允许您覆盖标准输入。 一个不同的过程。对不起,我是新手,你能解释一下进程类是什么意思吗? 【参考方案1】:

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

【讨论】:

以上是关于VB.NET SendKeys 的替代品的主要内容,如果未能解决你的问题,请参考以下文章

访问 VBA SendKeys 替代方案

VB.NET - Visual Studio 2003 的“继续”的替代方案

.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案

是否有适用于 Windows 10 的 SendKeys 类的替代方案

是否存在“SendKeys”的快速且可预测的替代方案?

是否有 VB.Net 替代方案可以跳过没有 GoTo Next 的控制块? [复制]