2013-03-19 131 views
0

我有一个SendKeys的问题。 我为在线多人游戏制作了一个Keybinder。 如果某个键例如:Numlock 1被注册,我的软件会发送一个或多个文本框中的一个或多个字符1。 一切工作正常。 示例代码: My.Computer.Keyboard.SendKeys(Textbox1.text)VB.NET - Sendkey的问题

但是,如果我注册Numlock1和Numlock2并设置Numlock1的为“Hi”的Sendkey价值和Numlock2的值设置为“它的费用$ 100 “该软件将Numlock2的值替换为Numlock1的值。

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

斯坦

+1

打开控制台窗口,我们将不胜感激一些代码。 – 2013-03-19 21:23:50

+0

我不确定你的意思是“Numlock1”和“Numlock2”? – 2013-03-19 22:12:46

回答

0

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

下面是如何切换[Numluck]在一个VB.net应用:

在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的”