VB.NET - Sendkey的问题

时间:2013-03-19 20:05:43

标签: .net vb.net exception sendkeys

我遇到了SendKeys的问题。 我为在线多人游戏制作了一个Keybinder。 如果注册了一个例如:Numlock 1的密钥,我的软件会在textbox1中发送一个或多个字母或其他内容。 一切正常。 示例代码: My.Computer.Keyboard.SendKeys(Textbox1.text)

但是如果我注册Numlock1和Numlock2并将Numlock1的Sendkey值设置为“Hi”并将Numlock2的值设置为“It $ 100 $”,则软件会将Numlock2中的1替换为Numlock1的值。

我来自德国,我的技能不是很好,但我希望我已经解释了一切可以解释的事情:)

斯坦

1 个答案:

答案 0 :(得分:0)

我很确定Numlock2按钮没有键盘,我不完全理解你的问题。也许你想切换Numlock按钮?

以下是在VB.net应用程序中切换[Numluck]的方法:

在Visual Studio 2013中,将这段开源代码编译为C#控制台应用程序。 sendkey.exe可以在命令窗口中使用。

sendkey v0.0.1

在VB.net中,使用Sendkey v0.0.1,如下所示:

Public Class ExecVBNet
Shared Sub Execut(command as String, arguments as String, permanent as Boolean) 
    Dim p as Process = new Process() 
    Dim pi as ProcessStartInfo = new ProcessStartInfo() 
    pi.Arguments = " " + if(permanent = true, "/K" , "/C") + " " + command + " " + arguments 
    pi.FileName = "cmd.exe" 
    p.StartInfo = pi 
    p.Start() 
End Sub
End Class

然后像这样按下numlock按钮。它类似于按下(向下)和按下(向上)按钮一次。结果是,按钮被切换。

ExecVBNet.Execut("Sendkey", "NUMLOCK down", true)
ExecVBNet.Execut("Sendkey", "NUMLOCK up", true)

在Execut方法中,您也可以直接使用“sendkey.exe”而不是使用“cmd.exe”打开控制台窗口