我使用s.Keyboard.Keypress(VirtualKeyCode.VK_H);
方法。我希望能够将VK_H
值交换到我们正在运行的“Test”的其他字符。我正在使用InputSimulation
库。
因此在测试中它会运行一系列输入,如:
s.Keyboard.KeyPress(VirtualKeyCode.VK_T);
s.Keyboard.KeyPress(VirtualKeyCode.VK_E);
s.Keyboard.KeyPress(VirtualKeyCode.VK_S);
s.Keyboard.KeyPress(VirtualKeyCode.VK_T);
我的代码是
InputSimulator s = new InputSimulator();
char[] word = "Test".ToCharArray();
for(int i = 0; i<word.Length; i++)
{
s.Keyboard.KeyPress(VirtualKeyCode.VK_H);
}
答案 0 :(得分:0)
我无法想象我(作为审稿人)会让C#代码通过依赖于枚举记录的名称的情况。枚举中的记录应被视为&#34; 数字的名称&#34;并简单地帮助您作为程序员识别数字。
经常使用VirtualKeyCode.VK_T.ToString()
之类的东西,但在我看来应该避免使用(让我们暂时不做记录和调试目的)。我知道这是一种从文本中获取文本的超级简单方法,但它很丑陋。现在回答你的问题。我会用这个:
InputSimulator s = new InputSimulator();
foreach(var c in "test")
{
VirtualKeyCode keyCode;
switch(c)
{
case 't':
keyCode = VirtualKeyCode.VK_T; //Used twice in the text "test"
return;
case 'e':
keyCode = VirtualKeyCode.VK_E;
return;
case 's':
keyCode = VirtualKeyCode.VK_S;
return;
default:
throw new NotImplementedException($"The following character has not been implemented correctly: {c}");
}
//Go ahead and use keyCode here
}