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 的替代品的主要内容,如果未能解决你的问题,请参考以下文章
VB.NET - Visual Studio 2003 的“继续”的替代方案
.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案