2013-03-19 128 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的」