在运行时基于字符串编辑代码

时间:2018-11-29 22:39:14

标签: c# winforms

我有一个程序,用户在其中输入一个字符串,该字符串需要使用InputSimulator NuGet包输入。

我是否可以输入代码并用字符串填充空格并运行它?这是什么意思:

Inputsimulator sim = new Inputsimulator();
   sim.Keyboard.KeyPress(WindowsInput.Native.VirtualKeyCode.VK_A);

({VK_A将替换为"VK_" + MyLetter

是否有任何方法可以更改或使代码在运行时运行?

谢谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您可以直接使用TextEntry方法:

sim.Keyboard.TextEntry("Say hello!");

答案 1 :(得分:1)

我不了解WindowsInput.Native.VirtualKeyCode.VK_A,但是显然看起来像enum,所以它们必须具有递增的整数值,所以:

int a = (int)WindowsInput.Native.VirtualKeyCode.VK_A;

将为您提供VK_A的值,而VK_B将为a + 1,依此类推...

int a = (int)WindowsInput.Native.VirtualKeyCode.VK_A;
for(int i=0; i<26; i++)
   sim.Keyboard.KeyPress((WindowsInput.Native.VirtualKeyCode)(a + i));

您可以使用如下方法: WindowsInput.Native.VirtualKeyCode KeyCode(字符chr) {     int a =(int)WindowsInput.Native.VirtualKeyCode.VK_A;     if(a> ='A'和a <='Z')     返回(WindowsInput.Native.VirtualKeyCode)(chr-a);     //其他情况 }

然后您可以像这样使用它:

sim.Keyboard.KeyPress(KeyCode('B'));

答案 2 :(得分:-1)

我确定您不能执行此操作,因为您必须在计算机上安装一个编译器,即使您在计算机上安装了编译器,也无法在运行时执行该操作,因为Windows将使用.exe文件,并且编译器无法更改它。